QMap使用 Qt 容器( ,QVector等)而不是 STL 等价物有什么优缺点?
QMap
QVector
我可以看到更喜欢 Qt 的一个原因:
QVariant
QSettings
QList
QHash
还有其他的吗?
编辑 :假设应用程序已经依赖于 Qt。
我开始专门使用std::(w)stringSTL 容器并转换为/从 Qt 等效项,但我已经切换到QString并且我发现我越来越多地使用 Qt 的容器。
std::(w)string
QString
与字符串QString相比,它提供了更完整的功能,std::basic_string并且完全支持 Unicode。它还提供了一个高效的 COW 实现,我非常依赖它。
std::basic_string
Qt的容器:
foreach
QDataStream
std::string
QTL 与 STL 有不同的理念,J. Blanchette 对此进行了很好的总结:“STL 的容器针对原始速度进行了优化,而 Qt 的容器类经过精心设计,可提供便利、最少的内存使用和最少的代码扩展。” 上面的链接提供了有关 QTL 实现以及使用了哪些优化的更多详细信息。