Подтвердить что ты не робот

Работает ли Qt с STL & Boost?

Я заинтересован в изучении Qt. Я довольно хорошо знаком с С++, STL и Boost. Мне нравится стиль STL/Boost, и я использую их с С++ всякий раз, когда я могу в проектах uni. Тем не менее, я всегда пропускаю графический интерфейс. Кажется, что Qt - лучшее решение в моем случае. У Qt есть хорошая коллекция контейнеров, но я знаком с материалами STL/Boost.

Что мне следует учитывать при изучении Qt и использовании его рядом с STL/Boost?

4b9b3361

Ответ 1

Да, 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, как передача пользовательских объектов между потоками с подключенными в очереди подключениями.

См. также:

Ответ 2

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