![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
Visual Studio N \ VC \ include \ vector З.Ы. а что, разные бывают что ли ? -------------------- ![]() |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
Насколько я читал, STL по определению реализует семантику значений, а не указателей. Поэтому если я копирую вектор, то мне же нужно скопировать значения из вектора, а не указатели на них!
Это, по-моему, описано в стандарте. В этом случае мелкомягкие .... <ваша фантазия> Но я себе это плохо представляю... mr.DUDA, ты уверен в этом? |
|||
|
||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 40 Всего: 173 |
+++ Погорячился -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
||||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
Насколько я смог понять, да. Значения лежат в классе-обёртке _Alloc, которая в свою очередь лежит в векторе. Если я не прав, ногами не пинайте, я смотрю что тут сишники собрались хардкорные. Хм, пример ? -------------------- ![]() |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
Во-первых, _Alloc зависит от реализации.
У него даже не факт, что имя такое... Во-вторых, контейнеры STL реализуют семантику значений, и по сему указатели там хранится в принципе не могут. Кроме того, для контейнера std::vector гарантируется, что элементы будут лежать рядом, и к элементам вектора можно обращаться как к обычному массиву. Как вариант, там может хранится указатель на начало массива и, допустим, количество элементов... Но там есть еще много нюансов... типа количества выделенной памяти, буферов и т.д. Если нужно хранить указатели на элементы - пожалуйста, храните объекты T*, кто запрещает?.. Примеры реализаций: STLport Dinkumware Standart C++ Library Microsoft - ... GNU - ... Это навскидку, а есть еще и другие... |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
||||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
Вполне возможно Неверный вывод о том, что обёртка содержит указатель, который и копируется в copy constructor
+1 маньяк ! -------------------- ![]() |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |