Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Что использовать вместо TList и vector

299
23 августа 2005 года
3D Bob
885 / / 18.04.2005
Подскажите пожалуйста, что лучше использовать вместо этих двух компонент.
TList является частью VCL и меня это сильно напрягает. Меня всегда напрягала огромная привязанность к определенной среде.
Но в чем еще хранить указатели я не знаю.
Vector перестал устраивать с недавнего времени. Он слишком "крутой". Оказалось что каждый раз при добавлении/удалении элементов он перемещает все другие элементы внутри себя, так чтобы все элементы шли строго друг за другом в памяти. Да, это несомненно отлично, при работе с данными напрямую.
Но повторюсь это круто, и это не нужно.
Это лишняя трата ресурсов. Меня вполне устраивает обращение к элементам через их создателя.
Итак, в чем лучше хранить указатели чистого Си++?
2
23 августа 2005 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by 3D Bob
Подскажите пожалуйста, что лучше использовать вместо этих двух компонент.
TList является частью VCL и меня это сильно напрягает. Меня всегда напрягала огромная привязанность к определенной среде.
Но в чем еще хранить указатели я не знаю.
Vector перестал устраивать с недавнего времени. Он слишком "крутой". Оказалось что каждый раз при добавлении/удалении элементов он перемещает все другие элементы внутри себя, так чтобы все элементы шли строго друг за другом в памяти. Да, это несомненно отлично, при работе с данными напрямую.
Но повторюсь это круто, и это не нужно.
Это лишняя трата ресурсов. Меня вполне устраивает обращение к элементам через их создателя.
Итак, в чем лучше хранить указатели чистого Си++?


ну реализуй свой связный список :) только я не уверен, что у тебя получиться реализация с меньшей тратой ресурсов...

3
23 августа 2005 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by squirL
ну реализуй свой связный список :) только я не уверен, что у тебя получиться реализация с меньшей тратой ресурсов...


А зачем изобретать велосипед?

Для 3D Bob:
vector - не единственный контейнер stl.
Есть ещё и list, map, queue и т.п.
Выбирай на вкус.

299
23 августа 2005 года
3D Bob
885 / / 18.04.2005
Цитата:
Originally posted by Green
А зачем изобретать велосипед?

Для 3D Bob:
vector - не единственный контейнер stl.
Есть ещё и list, map, queue и т.п.
Выбирай на вкус.


Я вкурсе. Именно про них я и говорю. Справочника по сям нету под рукой, и хотел бы знать, какой из этих контейнеров не извращается и не перемещает каждый раз данные внутри себя.

2
23 августа 2005 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by Green
А зачем изобретать велосипед?


а в вопросе явно прослеживалось желание изобрести оный девайс, вместо того, чтобы поковырять доки по STL :)

406
23 августа 2005 года
vitaly2003s
481 / / 27.07.2004
Справочника нету,а инет на что?
3
23 августа 2005 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by 3D Bob
Я вкурсе. Именно про них я и говорю. Справочника по сям нету под рукой, и хотел бы знать, какой из этих контейнеров не извращается и не перемещает каждый раз данные внутри себя.


Все зависит от конкретной задачи.
Даже вектор не перемещает данные каждый раз, он выделяет память с запасом.
В обобщенном случае подойдет список (std::list).

299
23 августа 2005 года
3D Bob
885 / / 18.04.2005
Цитата:
Originally posted by vitaly2003s
Справочника нету,а инет на что?

А форум?

Green спасибо.

12K
25 августа 2005 года
dolpin_spb
9 / / 18.08.2005
Цитата:
Originally posted by 3D Bob
Подскажите пожалуйста, что лучше использовать вместо этих двух компонент.
TList является частью VCL и меня это сильно напрягает. Меня всегда напрягала огромная привязанность к определенной среде.
Но в чем еще хранить указатели я не знаю.
Vector перестал устраивать с недавнего времени. Он слишком "крутой". Оказалось что каждый раз при добавлении/удалении элементов он перемещает все другие элементы внутри себя, так чтобы все элементы шли строго друг за другом в памяти. Да, это несомненно отлично, при работе с данными напрямую.
Но повторюсь это круто, и это не нужно.
Это лишняя трата ресурсов. Меня вполне устраивает обращение к элементам через их создателя.
Итак, в чем лучше хранить указатели чистого Си++?


Не парься и юзай класс TStrings, туда и засунуть в список можно TObject, просто создаешь свой класс на его основе - если чего не устраивает и дописываешь его...

299
25 августа 2005 года
3D Bob
885 / / 18.04.2005
Цитата:
Originally posted by dolpin_spb
Не парься и юзай класс TStrings, туда и засунуть в список можно TObject, просто создаешь свой класс на его основе - если чего не устраивает и дописываешь его...


Я же сказал, мне не нужна привязанность к среде, а именно TStrings это объект VCL.. Тем более TStrings еще круче чем TList и vector.
Среди таких фундоментальных вещей, я предпочитаю использовать чистый стандарт Си++ а не борладн.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог