|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.05.2012, 22:07 | #1 |
Регистрация: 30.12.2011
Сообщений: 6
|
вектор указателей на экземпляры класса
Здравствуйте.
Опуская предысторию, хочу написать класс на основе stl::vector, который бы хранил указатели на классы, сами ими владел, оперировал, освобождал. Сейчас вот пишу и думаю, может, я и не прав, может не нужно вектора указателей, может можно просто вектор экземпляров класса. Ну просветите мне мозги, если я переусложняю. Так вот. (чтобы не перегружать пост - даю ссылочки на код). Первый вариант Второй вариант И в конце концов Крашеный кубик-рубик Последний вариант решил проблему, но как-то... ну вы понимаете. В общем any help will be appreciated |
04.05.2012, 00:10 | #2 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
1. Мало мало косячно отнаследовался от стандартного вектора, зарубив львиную долю его функционала.
2. Если нужен "вектор указателей, контролирующий время жизни", достаточно использовать стандартный вектор сильных указателей. То бишь, никакие дополнительные самоделки для этого не нужны. |
04.05.2012, 10:45 | #3 |
Форумчанин
Регистрация: 08.07.2010
Сообщений: 505
|
3. Использовать модель включения, а не наследия.
Код:
Код:
Знающий не говорит, говорящий не знает (С) Лао Цзы
Последний раз редактировалось Krok27; 04.05.2012 в 10:57. |
04.05.2012, 13:51 | #4 |
Регистрация: 30.12.2011
Сообщений: 6
|
Re: _Bers, Ваш вариант выглядит более... в общем более.
Правильно я понимаю, что рекомендуется использовать Код:
Кроме того, я хочу использовать подобную конструкцию много раз, и ее хорошо определить где-нибудь в одном месте. Но чтобы мало-мало не зарубать даже конструкторы придется делать Код:
Сейчас вот думаю, где там еще какие баги могут возникнуть... |
04.05.2012, 14:10 | #5 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
Aldegid
То, что ты пытаешься в муках изобрести, называется boost:: ptr_vector<> oO
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
Последний раз редактировалось Rififi; 04.05.2012 в 14:13. |
04.05.2012, 14:47 | #6 |
Регистрация: 30.12.2011
Сообщений: 6
|
Кроме того я задумался вообще вот над чем: а так ли мне нужны указатели. Может быть просто вектор объектов?
Неудобно только вставлять - каждый push_back лишние создание и удаление. Причем тут еще зависит, содержит ли сам тип T указатели на тяжелые (большие по размеру) объекты... вообще содержит ли указатели. Я так понимаю, раз я много раз написал Код:
Код:
|
04.05.2012, 14:57 | #7 |
Регистрация: 30.12.2011
Сообщений: 6
|
boost, говорите? ну ждите вопросов по boost. В прошлый раз мне не удалось его даже "сварить". Посмотрим, как получится "извлечь необходимое подмножество исходников с сохранением зависимостей" в этот раз.
|
04.05.2012, 21:09 | #8 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
При этом все элементы сдвигаются по вектору при помощи operator= Если тебя парят потери производительности - смотри в сторону других контейнеров, а ещё лучше - пулов памяти. Если не парят - тогда вообще не майся дурью. Не нужно изобретать велосипед. |
|
05.05.2012, 18:50 | #9 |
Регистрация: 30.12.2011
Сообщений: 6
|
Полчаса писал ответ и, как всегда бывает на кхм... в общем переписываю.
Вот такая ситуация Код:
Значит, мне нужно иметь такой Код:
Код:
Код:
Последний раз редактировалось Aldegid; 05.05.2012 в 18:58. |
06.05.2012, 01:15 | #10 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Пока учишься - учись. Пробуй. Ошибайся.
Но если нужно для боевого кода - лучше пользовать профессиональные инструменты. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
вектор, состоящий из обьектов класса | sinestro | Visual C++ | 3 | 20.04.2012 15:07 |
вектор объектов класса и алгоритмы | РагнаР | Общие вопросы C/C++ | 3 | 10.04.2011 07:00 |
Вектор из callback'ов методов класса | Gongled | Общие вопросы C/C++ | 7 | 05.01.2011 16:29 |
Все экземпляры класса | russian-stalker | Общие вопросы Delphi | 6 | 21.08.2009 11:16 |
массив указателей на методы класса? | cout | Общие вопросы C/C++ | 2 | 08.05.2008 09:43 |