Qt是否适用于STL&促进?

时间:2009-08-09 03:40:47

标签: c++ qt stl boost

我有兴趣学习Qt。我对C ++,STL和Boost相当不错。我非常喜欢STL / Boost风格,每当我能在uni项目中使用C ++时我都会使用它们。但是,我总是想念GUI。在我的案例中,Qt似乎是最好的解决方案。 Qt确实有很好的容器集合,但我非常熟悉STL / Boost的东西。

在学习Qt并与STL / Boost并排使用时,我应该注意什么?

2 个答案:

答案 0 :(得分:32)

是的,Qt对Boost和STL都很好。 Qt中的大多数STL功能都是重复的,以确保支持Qt的所有平台都支持这些功能。但是,没有什么能阻止你使用Qt缺乏的Qt结构或功能的STL / boost对应物。

虽然Qt有自己的字符串,容器和算法对象,但它还包含大量与STL兼容的功能。例如,可以将QString转换为std :: string,并将QVector与std :: for_each一起使用。 Qt还包含一些与boost重叠的功能,例如QPointer(与std:auto_ptr和boost:shared_ptr进行比较/对比)。

Creating Custom Qt Types文章可以提供一些使用高级功能和transmitting custom objects between threads with queued connections等提升对象的见解。

另见:

答案 1 :(得分:11)

Qt与STL一起工作得相当好,虽然像任何框架一样,他们必须更换一些STL结构(唯一一个你会发现自己被迫使用的是字符串/ unicode)。来自Boost的所有东西都很棒 - 实际上它是一对使用的工具包,但你需要小心使用boost :: signals,因为Qt也有一个信号实现并且名称可以重叠。 Boost在FAQ中介绍了这一点,并且有一些关于trolltech网站的信息以及如何避免这个问题。