Что использовать вместо TList и vector
TList является частью VCL и меня это сильно напрягает. Меня всегда напрягала огромная привязанность к определенной среде.
Но в чем еще хранить указатели я не знаю.
Vector перестал устраивать с недавнего времени. Он слишком "крутой". Оказалось что каждый раз при добавлении/удалении элементов он перемещает все другие элементы внутри себя, так чтобы все элементы шли строго друг за другом в памяти. Да, это несомненно отлично, при работе с данными напрямую.
Но повторюсь это круто, и это не нужно.
Это лишняя трата ресурсов. Меня вполне устраивает обращение к элементам через их создателя.
Итак, в чем лучше хранить указатели чистого Си++?
Подскажите пожалуйста, что лучше использовать вместо этих двух компонент.
TList является частью VCL и меня это сильно напрягает. Меня всегда напрягала огромная привязанность к определенной среде.
Но в чем еще хранить указатели я не знаю.
Vector перестал устраивать с недавнего времени. Он слишком "крутой". Оказалось что каждый раз при добавлении/удалении элементов он перемещает все другие элементы внутри себя, так чтобы все элементы шли строго друг за другом в памяти. Да, это несомненно отлично, при работе с данными напрямую.
Но повторюсь это круто, и это не нужно.
Это лишняя трата ресурсов. Меня вполне устраивает обращение к элементам через их создателя.
Итак, в чем лучше хранить указатели чистого Си++?
ну реализуй свой связный список :) только я не уверен, что у тебя получиться реализация с меньшей тратой ресурсов...
ну реализуй свой связный список :) только я не уверен, что у тебя получиться реализация с меньшей тратой ресурсов...
А зачем изобретать велосипед?
Для 3D Bob:
vector - не единственный контейнер stl.
Есть ещё и list, map, queue и т.п.
Выбирай на вкус.
А зачем изобретать велосипед?
Для 3D Bob:
vector - не единственный контейнер stl.
Есть ещё и list, map, queue и т.п.
Выбирай на вкус.
Я вкурсе. Именно про них я и говорю. Справочника по сям нету под рукой, и хотел бы знать, какой из этих контейнеров не извращается и не перемещает каждый раз данные внутри себя.
А зачем изобретать велосипед?
а в вопросе явно прослеживалось желание изобрести оный девайс, вместо того, чтобы поковырять доки по STL :)
Я вкурсе. Именно про них я и говорю. Справочника по сям нету под рукой, и хотел бы знать, какой из этих контейнеров не извращается и не перемещает каждый раз данные внутри себя.
Все зависит от конкретной задачи.
Даже вектор не перемещает данные каждый раз, он выделяет память с запасом.
В обобщенном случае подойдет список (std::list).
Справочника нету,а инет на что?
А форум?
Green спасибо.
Подскажите пожалуйста, что лучше использовать вместо этих двух компонент.
TList является частью VCL и меня это сильно напрягает. Меня всегда напрягала огромная привязанность к определенной среде.
Но в чем еще хранить указатели я не знаю.
Vector перестал устраивать с недавнего времени. Он слишком "крутой". Оказалось что каждый раз при добавлении/удалении элементов он перемещает все другие элементы внутри себя, так чтобы все элементы шли строго друг за другом в памяти. Да, это несомненно отлично, при работе с данными напрямую.
Но повторюсь это круто, и это не нужно.
Это лишняя трата ресурсов. Меня вполне устраивает обращение к элементам через их создателя.
Итак, в чем лучше хранить указатели чистого Си++?
Не парься и юзай класс TStrings, туда и засунуть в список можно TObject, просто создаешь свой класс на его основе - если чего не устраивает и дописываешь его...
Не парься и юзай класс TStrings, туда и засунуть в список можно TObject, просто создаешь свой класс на его основе - если чего не устраивает и дописываешь его...
Я же сказал, мне не нужна привязанность к среде, а именно TStrings это объект VCL.. Тем более TStrings еще круче чем TList и vector.
Среди таких фундоментальных вещей, я предпочитаю использовать чистый стандарт Си++ а не борладн.