QT работает хорошо с STL и Повышением?

Я видел, что это использовало в качестве небольшой взлом производительности для "динамического типа" указатель (в разделе "Under the Hood"):

, Но вот хитрый прием, я раньше получал быструю производительность для маленьких типов: если сохраненное значение может соответствовать в пустоте*, я на самом деле не потрудился выделять новый объект, я вызываю его в сам указатель с помощью нового размещения.

26
задан AraK 9 August 2009 в 04:09
поделиться

2 ответа

Да, Qt отлично работает как с Boost, так и с STL. Большая часть функциональности STL продублирована в Qt, чтобы гарантировать, что такие функции поддерживаются на всех платформах, поддерживающих Qt. Однако ничто не запрещает вам использовать STL / boost-аналоги конструкций Qt или функциональных возможностей, которых нет в Qt.

Хотя Qt имеет свои собственные объекты строк, контейнеров и алгоритмов, он также содержит множество функций для совместимости с STL. Например, QString можно преобразовать в std :: string, а QVector можно использовать с std :: for_each. Qt также содержит некоторые функции, которые перекрываются с повышением, такие как QPointer (сравните / сравните с std: auto_ptr и boost: shared_ptr).

Статья Создание пользовательских типов Qt может дать некоторое представление об использовании расширенных функций с объектами Boost, такими как передача пользовательских объектов между потоками с подключениями в очереди .

См. Также:

32
ответ дан 28 November 2019 в 07:20
поделиться

Qt довольно хорошо работает вместе с STL, хотя, как и любой фреймворк им пришлось заменить некоторые структуры STL по необходимости (единственное, что вы будете вынуждены использовать, это строка / юникод). Все из Boost отлично работает - на самом деле это отличная пара наборов инструментов для совместного использования, но вам нужно быть осторожным с boost :: signal, поскольку Qt также имеет реализацию сигналов, и имена могут перекрываться. Boost освещает это в FAQ и там:

11
ответ дан 28 November 2019 в 07:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: