|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
10.09.2014, 19:59 | #11 |
Форумчанин
Регистрация: 03.05.2010
Сообщений: 129
|
Что-ж буду использовать низкоуровневый массив для хранения потомков. Всем огромное спасибо!
|
10.09.2014, 20:12 | #12 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
Хорошая идея: использовать вектор. 1. Вектор умных указателей на элементы. Потребители смогут безопасно работать с элементами посредством указателя. 2. Вектор сырых указателей на элементы. Не так безопасно, как пункт 1, но иногда дополнительная безопасность и не требуется. 3. Вектор, который хранит элементы по значению. Потребители смогут работать с элементами посредством индекса в контейнере. ------------------------------- Так же можно использовать "стабильный вектор" - контейнер из библиотеки boost, который способен гарантировать неизменность адреса элемента. Стабильный вектор менее эффективен, чем стандартный, если нужно работать с указателями. Но более эффективен, если в контейнере нужно хранить по значению. http://www.classes.cs.uchicago.edu/a...reference.html |
|
10.09.2014, 20:49 | #13 |
Форумчанин
Регистрация: 03.05.2010
Сообщений: 129
|
Ну я не такой быстрый, поэтому начну с п. 1. Не понимаю слово "умных", поясните если не трудно, желательно на моем примере. Спасибо.
|
10.09.2014, 21:45 | #14 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Цитата:
Функция - capacity.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
|
10.09.2014, 21:46 | #15 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
Предоставьте минимальный компилирующийся код, который иллюстрирует вашу проблему. Тогда я сделаю реализацию на умных указателях. А допиливать ваш код - увольте. Могу лишь показать пример-иллюстрацию работы с умными указателями: http://rextester.com/OUGAT91897 Код:
|
|
10.09.2014, 21:49 | #16 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
1. capacity делает не то, о чем вы подумали.
2. Если вам заранее точно известно количество элементов, вам не нужен std::vector. Вам нужен std::array. 3. Если вам заранее не известно количество элементов, то reserve вас не спасет, и не даст вам никаких гарантий. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
На основе контейнера vector построить двумерный динамический массив С++ | Вероника99 | Помощь студентам | 1 | 25.05.2014 17:22 |
C++ Boost - vector<path> to vector<string> | frommars | Общие вопросы C/C++ | 0 | 04.02.2013 21:19 |
Как вытащить строку из vector'a | Tema_Crazzzy | Общие вопросы C/C++ | 2 | 12.09.2010 20:38 |
проблема с push_back | torres | Общие вопросы C/C++ | 6 | 20.08.2010 15:27 |
Как программно удалить компонент от формы или другого компонента (контейнера)? | SkAndrew | Общие вопросы Delphi | 3 | 27.05.2008 15:20 |