Qt容器 - 我应该选择哪个
Qt containers - which should I choose?
Qt
提供了一组类似STL
的容器。
但是,没有可用的容器,它按顺序存储有序值(如std::set
),并且由于某些原因QSet
的行为类似于std::unordered_set
。我意识到在称为"set"数据结构O(1)
查找可能是一件好事,但我当然无法理解为什么做出这个决定。
应该使用哪个容器来存储有序的项目集合(我怀疑具有虚构值的QMap
是一个非常糟糕的选择),为什么Qt
不提供类似 std::set
的东西?
我想这背后可能有一些技术原因,但不幸的是,我想不出一个。
来自维基百科:
Haavard Nord和Eirik Chambe-Eng(Qt的原始开发者和Trolltech的首席执行官兼总裁)于1991年开始开发"Qt"
同样来自维基百科,关于STL:
贝尔实验室的安德鲁·柯尼希(Andrew Koenig)没有意识到这项工作,并要求斯捷潘诺夫在1993年11月的ANSI/ISO C++标准化委员会会议上提出主要思想。委员会的反应是压倒性的,并导致Koenig要求在1994年3月的会议上及时提出正式提案。尽管时间压力巨大,Alex和Meng还是能够提出一份提案草案,并在会议上获得初步批准。
从男人自己:
"正如我经常说的,我认为不交付更大的标准库是我最大的错误。
Qt独立开发。 就这样过去了。 使用QMap,继续你的生活。 :)
(注:Qt中有一个无序图,叫QHash)
如果你想不出一些有用或有趣的东西放在值槽中,那么你的程序可能还不够复杂,不能大惊小怪。 关键对象中是否有数据成员,您可以轻松地在映射中生成值? 你真的想不出放在那里的东西吗?
如果您确实在每个条目中浪费了一个字符,那么这是您系统中真正的瓶颈吗? 你有指标证明这一点吗? 等等等等。
- 我应该使用什么来代替void作为变体中的替代类型之一
- boost::asio::steady_timer()与sleep()我应该使用哪一个
- 我应该实现右值推送功能吗?我应该使用std::move吗
- 我是C++编程的新手,这些代码之间有什么区别,我应该使用哪一个
- 我应该删除矢量<short>吗?
- 我应该如何修改此代码以使用给定字符串中的字母打印菱形图案
- 我应该在锁定TBitmap画布后解锁它吗
- 为什么我应该在异常处理中使用std::cerr而不是std::cout
- 我应该避免多重实现继承吗
- 在为 Java 编译动态链接文件时,我应该选择哪些 g++ 参数
- C ,代码::块,我应该在Windows和MacOS中选择哪种项目类型
- 我应该从以下功能中选择什么
- CUDA 5.5 : 我不能在内核方法中使用"printf",我应该在 VisualStucio2010 "compute_xx,sm_xx" 中选择哪个设备?
- 在 C++ 中,我应该选择哪个随机生成器来避免序列中的重复数字
- Qt容器 - 我应该选择哪个
- 如果我不想在 QAbstractItemView 中实现选择,我应该返回哪些值?
- 我应该选择HUGE_VAL还是INFINITY
- 我应该使用什么数据结构来支持插入、删除和随机选择
- 我应该选择什么样的同步方案来避免在实时,c++ /MFC应用程序上的死锁
- 我应该选择什么类型的Visual Studio c++项目来制作基本的unix应用程序?