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

Ваш аккаунт

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

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

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

VCL и STL

11K
20 июня 2008 года
Babandr
76 / / 05.05.2008
Создаю программу на билдере.Предстоит много работать со массивами элементов различных типов. В связи с этим есть мысль использовать не родной VCL-ный TList, а контейнеры STL, т.к. вроде TList не отличается скоростью.
Граждане, поделитесь пожалуйста субъективным опытом: стоит ли это делать? Может, есть какие-то особенности работы билдера с STL, о которых надо знать? Дает ли использование STL в билдеровских программах выгоду?

Заранее благодарен.
8.2K
20 июня 2008 года
Pelican
115 / / 16.06.2007
Цитата:

поделитесь пожалуйста субъективным опытом



Если тебе нужна скорость, то попробуй STL, ибо VCL в большей мере написана на Pascal'е, не знаю как на счет TList; STL как раз оптимизирована для высокой скорости.

Цитата:

стоит ли это делать?



Твое дело, смотря какие задачи решаешь.

11
20 июня 2008 года
oxotnik333
2.9K / / 03.08.2007
Цитата: Babandr
стоит ли это делать?


стоит

Цитата: Babandr

Может, есть какие-то особенности работы билдера с STL, о которых надо знать?



STL отличает абстрагированность от каких либо объектов, т.е. в контейнер можно помещать все что душа пожелает.

3
20 июня 2008 года
Green
4.8K / / 20.01.2000
Цитата: Babandr
В связи с этим есть мысль использовать не родной VCL-ный TList, а контейнеры STL...


STL как раз-таки "роднее", т.к. это часть самого языка C++, в отличие от VCL, которая просто раздутая библиотека от борланда.

Цитата: Babandr

Может, есть какие-то особенности работы билдера с STL, о которых надо знать? Дает ли использование STL в билдеровских программах выгоду?


Дает ли выгоду использование C++ в билдере?

[QUOTE=oxotnik333]
STL отличает абстрагированность от каких либо объектов,
[/QUOTE]
Некорректно построенная фраза.

[QUOTE=oxotnik333]
т.е. в контейнер можно помещать все что душа пожелает.
[/QUOTE]
Это неверно.
В контейнер инстанированный определенным (не ссылочным) типом можно помещать объекты только этого типа, причем этот тип должен иметь открытые не-explicit конструктор копирования и оператор присваивания. Т.е. в конструктор нельзя поместить, к примеру, ссылку, массив, auto_ptr и т.п.

11
20 июня 2008 года
oxotnik333
2.9K / / 03.08.2007
процитировал не того последние 2 раза
11
20 июня 2008 года
oxotnik333
2.9K / / 03.08.2007
Цитата: Green

Это неверно.
В контейнер инстанированный определенным (не ссылочным) типом можно помещать объекты только этого типа, причем этот тип должен иметь открытые не-explicit конструктор копирования и оператор присваивания. Т.е. в конструктор нельзя поместить, к примеру, ссылку, массив, auto_ptr и т.п.



имелось ввиду на этапе проектирования приложения.
ЗЫ: соответственно голова должна работать что надо в контейнер пихать, а что не надо.

1
21 июня 2008 года
kot_
7.3K / / 20.01.2000
Практически всегда лучше пользовать STL.
Внутренние контейнеры борланда стоит использовать только:
a) когда лень
b) специфические задачи, или же при работе с борландовскими компонентами (типа TTreeView) - тогда просто надо определиться - или работать с готовым компонентом и мириться с неудобствами - или использовать стандартные решения языка - но потратить немного больше времени.

Особенности при работе с борландом - как правило устаревшая библиотека и бока с менеджером памяти. Говорю о версии 6.0 - возможно в последующих это исправлено. ИМХО
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог