Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос об указателях 
:(
    Опции темы
PostEr
Дата 1.8.2003, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 282
Регистрация: 30.6.2003
Где: Самара

Репутация: 1
Всего: 1



Если у меня std::vector поинтеров на экземпляры, и если я удаляю (деструктором или там ещё как smile.gif) экземпляр, то сказвается ли это на содержимом вектора?


--------------------

------------------------------------------------------------------

[email protected]
До востребования

PM MAIL WWW ICQ   Вверх
RAN
Дата 1.8.2003, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 709
Регистрация: 14.3.2003
Где: Щёлково Моск.обл.

Репутация: 5
Всего: 6



Нет, конечно. Как он узнает, что ты объект удалил.
PM MAIL ICQ   Вверх
mr.DUDA
Дата 1.8.2003, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



Все нужно делать в рамках вектора, иначе смысл пропадет (кому нужны пойнтеры на черт-знает-куда). Правда, можно юзать смарт-пойнтеры, тогда собственно указуемые объекты будут существовать всегда, а вот то, на что указывает смарт-пойнтер, можно удалять/создавать (правда, пользуясь чисто средствами смарт-пойнтера).


--------------------
user posted image
PM MAIL WWW   Вверх
DENNN
Дата 2.8.2003, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 1
Всего: 43



Использование умных указателей с библиотекой крайне не рекомендуется, главная причина - большинство алгоритмов библиотеки постороено на копировании содержимого. А при таком копировании у smartpointer "крыша едет". Так что это очень плохой совет, череваты непредсказуемыми ошибками (даже если на твоей реализации библиотеки все заработает).

Цитата
Все нужно делать в рамках вектора, иначе смысл пропадет (кому нужны пойнтеры на черт-знает-куда)

Не согласен. Что хранить в контейнере зависит от решаемой задачи. Если необходимо хранить массив указателей то почему бы нет?
В соседнем топике PostErr пытался "менеджер ресурсов" сделать. Так для этой задачи такой способ наиболее подходящий: хранить указатели на динамически созданные в памяти объекты, а не создавать копию по каждому запросу.
Повторюсь: все зависит от создаваемого алгоритма.
PM ICQ   Вверх
PostEr
Дата 2.8.2003, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 282
Регистрация: 30.6.2003
Где: Самара

Репутация: 1
Всего: 1



Одним словом, если у меня есть std::vector чего-то, то всё нужно хранить именно в нём. То есть, хранить там не указатели, а непосредственно l-values (так это называется?), и удалять, удаляя из std::vector. Так же и с любыми контейнерами, как я понимаю?


--------------------

------------------------------------------------------------------

[email protected]
До востребования

PM MAIL WWW ICQ   Вверх
DENNN
Дата 2.8.2003, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 1
Всего: 43



читай внимательно:
Цитата
все зависит от создаваемого алгоритма.

PM ICQ   Вверх
PostEr
Дата 2.8.2003, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 282
Регистрация: 30.6.2003
Где: Самара

Репутация: 1
Всего: 1



Да всё понятНО! Я считаю, что для моей задачи необходимо вызывать только конструкторы внутри вектора или контейнера, то есть AddItem должен вызывать конструктор и чтобы иначе никак smile.gif


--------------------

------------------------------------------------------------------

[email protected]
До востребования

PM MAIL WWW ICQ   Вверх
mr.DUDA
Дата 2.8.2003, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



PostEr, лучше спроси у DENNN напрямую - КАК МНЕ ЭТО СДЕЛАТЬ ??
И напиши, что ты хочешь получить smile.gif
Мне с моими "кривыми" советами лучше не вмешиваться... sad.gif


--------------------
user posted image
PM MAIL WWW   Вверх
PostEr
Дата 2.8.2003, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 282
Регистрация: 30.6.2003
Где: Самара

Репутация: 1
Всего: 1



А мне с кривыми вопросами smile.gif


--------------------

------------------------------------------------------------------

[email protected]
До востребования

PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1295 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.