Qt-应该选择C++ STL 还是 Qt标准库?

Qt-应该选择C++ STL 还是 Qt标准库?

浮生未歇 发布于 2017-10-14 字数 166 浏览 2319 回复 5

在项目中,图形界面使用的是Qt框架,我们经常会使用到 string、vector 等容器。
1.应该选择使用Qt中的容器还是 STL 中的容器?
2.C++的STL对跨平台有什么影响?

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

泛泛之交 2017-10-27 5 楼

还是用Qt吧,Qt为跨平台而生的,STL那些容器Qt都有实现而且改良了。

清晨说ぺ晚安 2017-10-26 4 楼

These container classes are designed to be lighter, safer, and easier to use than the STL containers. If you are unfamiliar with the STL, or prefer to do things the "Qt way", you can use these classes instead of the STL classes.

以上摘自Qt文档原文。Qt的容器类在设计上希望更加轻巧、安全、易用,不过实际上与STL相比怎样,我还没见过详细的性能分析。这个问题在SO上已经被人提到了,其答案见:http://stackoverflow.com/questions/1668259/stl-or-qt-containers

总的来说,如果你的项目本身基于Qt,推荐使用Qt的容器类。

至于STL的跨平台。应该说,这个要看具体的编译器和标准库实现了吧。

晚风撩人 2017-10-24 3 楼

毫无疑问,Qt中要选择的是Qt自带的容器类。因为Qt已经有了,为什么还要用别的呢?但是有个细节,就是Qt的容器也可以转换到stl,例如QVector,里面就有一个函数是toStl(具体名字记不太清楚了)的,就是转换到Stl的。所以推荐LZ使用Qt自带的容器类,需要做兼容的时候可以考虑转换一下

归属感 2017-10-24 2 楼

我的观点是,在界面部分因为是用Qt框架来写的,所以最好选择Qt中的容器。
但是在内核部分,不应该依赖于界面,内核最好选择C++标准库中的容器。

灵芸 2017-10-16 1 楼

STL那一套是可移植的,Qt那一套基本上和STL差不多....而且更轻巧、安全、易用,
QT设计的初衷就是可移植的,所以我认为直接使用Qt的比较好,省事很多..stl说实在的没有qt的那些好用