![]() |
|
![]() ![]() ![]() |
|
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 6 Всего: 250 |
http://www.boost.org http://www.boost.org/doc/libs/1_46_0/libs/...r/smart_ptr.htm угу, а с принятием нового стандарта еще все будет в стандартной библиотеке.. |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
Так я с этого и начинал. Не надо категорично говорить, что вектор не предназначен для хранения объектов через указатели, а надо обязательно использовать обертки в виде "умных" указателей. Без головы - можно и с умными напортачить, а с головой - в нужной ситуации и без них обойтись. При большом количестве объектов - умный указатель может замедлять работу, а при неправильном применении - можно и пару часов какой-нибудь идиотский баг поискать. Умный указатель - далеко не панацея, а в сочетании с вектором - тут уж фиг его знает как дело повернется. ИМХО. Кто же спорит. Я же не сказал, что TList всегда вместо вектора использую - я сказал, что он мне больше нравится. Кстати функционал вектора сам по себе не такой уж и крутой - просто к нему удобно применять общие алгоритмы STL - а это действительно мощно. А так - для самых распространенных задач - сохранить список неких объектов, количество которых заранее неизвестно, отсортировать и что-то с ним еще сделать согласно бизнес-логике - TList вполне применим. Для более крутой математики с STL уже не поспоришь. |
|||
|
||||
mes |
|
||||||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 6 Всего: 250 |
вектор действительно не предназначен для описанной в той цитате работы..
можно и обойтись, кто-то сказал иное ?
может и такое быть.. прошу пример, где я сказал обратное.. я не пойму предмета спора ? мне не надо было говорить тс, что есть альтернативные способы добиться цели ? которые к тому же облегчат его труд.. или Вы против того, что я просто грубо очертил область применения ? мне что надо было вдаваться в тонкости и исписать листов 5 тем, что в гугле ищется без проблем ? |
||||||
|
|||||||
Нитонисе |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
||||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 6 Всего: 250 |
прошу не путать, не о неприменимости, а о не предназначении, в контексте владения объектом ![]() сравните хотя бы с тем же boost.ptr_vector ![]() http://www.boost.org/doc/libs/1_46_0/libs/..._container.html или вот из гугля на русском : http://blog.alno.name/ru/2009/04/using-boost-ptr-containers Это сообщение отредактировал(а) mes - 28.2.2011, 09:37 |
|||
|
||||
Нитонисе |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
Библиотека boost очень интересная, особенно математические функции, но чтобы освоить - понадобится уйма времени)
Возник схожий вопрос с тем что в заголовке темы, новую создавать не стал. Как вернуть из функции ссылку на объект? Допустим есть вектор структур:
Правильная запись функции, вовращающей некий элемент будет такой?
|
||||
|
|||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 6 Всего: 250 |
исключение.. Добавлено через 37 секунд (Т&) - лишнее |
|||
|
||||
Нитонисе |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
А кроме исключения? Я пока с ними плохо знаком. Вот в случае с возвращением указателей проще. Если не удается вернуть указатель на запрашиваемый объект - можно вернуть NULL. В вызывающей функции обрабатывается этот указатель и понятно - нашли мы то что искали или нет. Впринципе и нет никаких проблем работать с указателем, но интересно как тут быть при работе со ссылками. Добавлено через 27 секунд Точно? Ведь тогда возвращается сам объект. |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 6 Всего: 250 |
||||
|
||||
Нитонисе |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
||||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 6 Всего: 250 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |