![]() |
|
![]() ![]() ![]() |
|
||
|
pan2004 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 357 Регистрация: 28.7.2007 Репутация: 6 Всего: 9 |
Собственно вопрос.
Имеется в виду, в каких контейнерах предпочитаете использовать там, где острой необходимости в кутешных нет. Так например, есть методы/функции Qt, принимающие/возвращающие "свои" списки и векторы - их в расчет не берем. |
|||
|
||||
ecspertiza |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 3.11.2008 Где: г.Смоленск Репутация: 4 Всего: 5 |
Тут нужно не радиоБатон а чекБокс
![]() Но проголосовал за КуТе ![]() Это сообщение отредактировал(а) ecspertiza - 3.8.2009, 16:52 |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 16 Всего: 92 |
Если есть возможность - я бы использовал Qt-шные. Интеграция (в виде того foreach-а) + фишки вроде COW радуют. К тому же они STL-совместимые, алгоритмы будут работать нормально.
|
|||
|
||||
pan2004 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 357 Регистрация: 28.7.2007 Репутация: 6 Всего: 9 |
Qt foreach работает и с STL контейнерами
|
|||
|
||||
SABROG |
|
||||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Из документации:
Вольный перевод:
Я, например, предпочитаю думать "по-кутешному" и использовать классы, которые предоставляет Qt. Мне достаточно доводов "легче", "безопасней" и "легко использовать". Кроме того, популярных реализаций STL как минимум 4: gcc, msvc, stlport (причем тоже разных версий), bcc. Внутренняя реализация у них разная. Можно конечно использовать stlport, только вот доставлять лишние библиотеки не хочется. |
||||
|
|||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 11 Всего: 33 |
STL.
Да, реализация у них разная, но поведение гарантированно! -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 1 Всего: 261 |
В модулях, выполняющих, к примеру, мат. алгоритм, т.е. не связанных с GUI использую STL, в GUI Implementation - Qt.
|
|||
|
||||
dix75 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 462 Регистрация: 17.7.2007 Репутация: 1 Всего: 1 |
Только STL.
за исключением стрингов конечно.
Ну и что, стандартом гарантированно их поведение, результаты и иногда скорость. -------------------- save your mind |
|||
|
||||
SABROG |
|
||||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
В принципе поддерживаю. Сам писал на Delphi бизнес-логику с использованием STL, теперь она нормально переноситься на любой компилер. С другой стороны, совсем не сложно заменить объявление QVector на std::vector в нескольких местах. Поведение ведь одинаковое. |
||||
|
|||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 11 Всего: 33 |
Смысл опроса - 0 ![]() -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
Mal Hack |
|
||||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 1 Всего: 261 |
Ну как тебе сказать... Глубоко я не копал, но на днях столкнулся со следующим траблом. В общем надо было в функцию передавать фиксированный массив строк. Ну я хотел ссылкой кинуть адрес самого массива, чтобы внутри обращаться аля aaa[0], aaa[1] etc. Короче, как раньше я делал в STL (однотипный пример):
В случае с QVector такое не катит... Там надо передавать QVector::data(). Маловероятно, что это были мои глюки, несмотря на позднюю ночь. Т.е. я к тому, что тут не все так просто для
QStringList вроде как тоже не заюзаешь аля aaa[0] = "sdsds" без предварительной инициализации. К тому же, самая большая проблема STL это как раз-таки не "thread safe", в отличии от Qt'шных контейнеров. Но по моему мнению thread safe в первую очередь должен программистом реализовываться при проектировании системы. Это сообщение отредактировал(а) Mal Hack - 3.8.2009, 23:32 |
||||
|
|||||
SABROG |
|
||||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
А можно пример? data() возвращает все-таки указатель, а не ссылку. Было бы очень странно, если ссылка на объекты в C++ не будет работать.
Имеется ввиду замена строки по индексу 0, где уже что-то есть или инициализация пустого списка таким образом, вместо insert или << ? |
||||
|
|||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 3 Всего: 211 |
ха
![]() как раз хотел задать этот вопрос. хотелось узнать насколько целесообразно использовать Qt контейнеры, но как посмотрю это вопрос спорный и скорее тут дело вкуса. По теме. Я использовал Qt контейнеры для совместимости (многие функции в Qt принимают Qt контейнеры). Насчет удобства - не скажу что разница большая, почти одно и тоже. |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 16 Всего: 92 |
Да, был не прав. Почему то думал, что foreach через java-style итераторы работает ![]() На Делфи? STL? Я чего-то не понимаю ![]()
Потокобезопасность это раз. Возможность возврата QVector по значению (сколько функций в Qt возвращают всякие QList?) - это два. Не, конечно, std::vector тоже можно вернуть по значению, но.. слишком уж неэффективно ![]() |
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Borland Builder C++ ![]() |
|||
|
||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 11 Всего: 33 |
SABROG, А при чем тут дельфи?
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
Mal Hack |
|
||||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 1 Всего: 261 |
Последнее. В STL инициализация элементов происходит сразу. В Кути только при инсерте и прочих вещах.
Да, data - возвращает указатель, который потом передается в функцию, что сравни приему, когда есть объект (не указатель) ааа, и в функцию надо передать адрес на этот объект, т.е. указатель, т.е. сделать ссылку. |
||||
|
|||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Ну в этой IDE сочетаются сразу C++, C#, Java и Pascal. Если раньше Borland Builder C++ был отдельным пакетом, то в BDS2006 это всё объединили и назвали Delphi. Если будет удобней, то скажу bcc. |
|||
|
||||
mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 1 Всего: 306 |
Камрад - ты что то путаешь. BDS2006 - это такая же братская могила что и MSVS, в которую входят Builder C++, Delphi и как-то там названный C#. Сразу стоит заметить - это последний IDE от Borland (и очень не удачный). Java как таковой я там не видел. Кстати что касается сабжа - тут на самом деле кому как хочется - так и юзает. Фактически аналоги stl есть у всех визуальных библиотек. И у VCL, и того же MFC. Использовать их возможно кошернее для выбранной визуальной библиотеки, под консоль, драйвера и прочее добро - думаю тут уже STL. ИМХО. |
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Ну может с годом ошибся, но там точно был JBuilder ![]() На самом деле разработчики драйверов не рекомендуют писать их на C++. Си - да. |
|||
|
||||
mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 1 Всего: 306 |
||||
|
||||
just_geek |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 309 Регистрация: 13.12.2007 Репутация: 7 Всего: 10 |
Qt only. Поддержка STL вообще убрана из моей сборки Qt
![]() |
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
А вдруг понадобится метод: std::string QString::toStdString () const? Без поддержки stl, он работать не будет. |
|||
|
||||
just_geek |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 309 Регистрация: 13.12.2007 Репутация: 7 Всего: 10 |
Я знаю что не будет работать. Зато размер dll меньше получился.
![]() |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 16 Всего: 92 |
Это Borland Developer Studio, а не Delphi ![]() |
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Ну вот же, пакет Delphi 2009 Architect включает в себя C++Builder 2009 Architect. |
|||
|
||||
mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 1 Всего: 306 |
||||
|
||||
chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 5 Всего: 44 |
ответил QT.
использую QT в проектах крайне редко. в текущем проекте требование что бы проект работал как и под WM так и под Symbian 6.0 по этому стараюсь использовать все QT'шное |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |