gpt4 book ai didi

c++ - 为什么 Qt 有标准 C++ 对象(例如 QVector、QString 等)的 'Q' 版本?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:09:26 25 4
gpt4 key购买 nike

为什么 Qt 必须为 C++ 中的许多标准对象/数据结构提供“Q”版本?推理是从一个来源产生的(即需要附加元数据用于格式化目的),还是仅取决于具体情况(例如 QString 允许更多语言设置而 QVectors 允许“任何”)?

谢谢!

最佳答案

  1. Qt 容器先于 STL 容器,原始版本(在 Qt 1 或 Qt 2 或其他版本中)是在没有标准 C++ 替代品时创建的。此外,STL 对所有(当时)支持的编译器的调整是渐进的,Qt 面向跨平台,因此保持其自身的实现可以保证它在任何地方都可以相同地工作。对于下一个主要的 Qt 版本,现在摆脱 Qt 自己的类型将意味着不可能完成大量的移植工作,因此这样的新版本实际上在到达时就已经死了。

  2. Qt 容器实际上是不同的,它们使用隐式数据共享与写时复制语义和引用计数。这种方法的优点和缺点超出了本文的范围,但由于信号和槽的工作方式(尤其是排队的连接),Qt 实现至少对于 Qt Framework 的使用是好的。

关于c++ - 为什么 Qt 有标准 C++ 对象(例如 QVector、QString 等)的 'Q' 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40350120/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com