![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Djuffin |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 18.3.2005 Репутация: 1 Всего: 2 |
Кстати!
Я не советую использовать vector<vector<>>. Это очень полохая практика. Лучше vector<vector<>*>. |
|||
|
||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 40 Всего: 173 |
ROTFL. Извиняюсь. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
Согласен с Void. В более мягкой форме: LOL.
-------------------- ![]() |
|||
|
||||
| Djuffin |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 18.3.2005 Репутация: 1 Всего: 2 |
В чем я не прав? Представляете что происходит каждый раз когда верхний вектор перераспределяет память, для добавления нового элемента? Это сообщение отредактировал(а) Djuffin - 22.10.2006, 19:18 |
||||
|
|||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 40 Всего: 173 |
Вполне. А вы? Hint: sizeof(vector<T>). -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
| Djuffin |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 18.3.2005 Репутация: 1 Всего: 2 |
||||
|
||||
| Void |
|
||||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 40 Всего: 173 |
При том, что отличие вектора от указателя на вектор с т.з. оверхеда на выделение и перевыделение памяти минимальное.
Т.е. вы хотите сказать, что
С чего вдруг? Добавлено @ 19:55 mr.DUDA, отдели пожалуйста ветку в cpp.general. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
||||
|
|||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
Модератор: вынес тему из C#
-------------------- ![]() |
|||
|
||||
| Djuffin |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 18.3.2005 Репутация: 1 Всего: 2 |
||||
|
||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 40 Всего: 173 |
Аналогично. Каким образом это затрагивает память, выделенную под содержимое остальных векторов? Хотя, должен признаться, это implementation defined. Но разумная реализация копиктора и swap таких вещей делать не должна. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
| Djuffin |
|
||||||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 18.3.2005 Репутация: 1 Всего: 2 |
ВОТ! Золотые твои слова Проведем расследование.
Результаты. Тут есть overhead.
А тут нету.
ВЫВОДЫ: (которые я для себя сделал) 0. Когда имеешь дело с STL надо хорошо обдумывать каждую строку кода. 1. Я отстал от современных реализаций STL. 2. На ROTFL мое замечание не тянет. |
||||||||||||
|
|||||||||||||
| Dude03 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 28.4.2006 Репутация: нет Всего: 6 |
лол, если автор поста хотел пошутить, то посмеялся, а если нет - плакать надо |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
||||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
В мелкомягкой реализации вектор содержит массив указателей на объекты, а не сами объекты. Поэтому алгоритм copy всего лишь скопирует N указателей при расширении массива (когда capacity не хватает).
-------------------- ![]() |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
||||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |