为什么使用QVector(Qt)而不是std :: vector

Ath*_*han 56 c++ qt vector

我是C++和Qt的新手,但我非常擅长C#/ Java.

关键是我喜欢跨平台,但我和Qt混淆了.是不是std::vector已经跨平台了,Qt不提供相当于非跨平台的东西吗?

另外如何FileQFile不同?

链接会很好,谢谢:)

Naw*_*waz 43

这篇文章很好.它将Qt模板库与标准模板库进行比较:

希望,您会发现文章中列出的所有差异很有趣.

编辑:

以下是我感兴趣的内容:

我的观点是QTL最大优点是它在Qt支持的所有操作系统上具有相同的实现(包括二进制兼容性).某些STL实现在性能方面可能低于标准,或者可能缺少功能.有些平台甚至没有STL!另一方面,STL更可定制,并且可以在头文件中全部使用...... 就像我说的,没有明显的赢家.

就像他说的那样,没有明确的赢家.但仍然阅读这篇文章会让很多事情变得清晰.在不知道另一个的情况下,更好地了解差异而不是一个人.

  • 根据相同的观点,Qt可能低于标准并且缺少功能.什么是模板容器的*二进制兼容性? (7认同)

Mic*_*urr 14

QVector类是引用计数,适合在不复制的情况下共享.Qt提供了许多与STL容器相对应的容器.一个描述这些内容的文档,内容有一些解释和一些基本原理:


phi*_*mue 9

来自这里:

Qt源于C++和标准库未被编译器标准化或得到良好支持的时代.因此,它复制了许多现在在标准库中的东西,例如容器和类型信息.最重要的是,他们修改了C++语言来提供信号,因此Qt类不能轻易地用于非Qt类.

  • 这不是整个故事,给人一种错误的印象.仍然有理由使用Qt容器,而不仅仅是共享内存等.但如果你没有使用任何其他Qt,请不要使用它们. (10认同)
  • 这是一个预处理器. (7认同)
  • 我不知道gtkmm FAQ是否是Qt信息的最佳来源......至少部分说Qt修改了C++语言是不正确的. (3认同)