Qt
提供了一组STL
- 类似containers.
但是,没有可用的容器,它按订单(如std::set
)和QSet
存储订购的值,原因有点像std::unordered_set
。我意识到在调用的“set”数据结构中查找可能是O(1)
可能是件好事,但我当然无法理解为什么做出这个决定。
我应该使用哪个容器来存储订购的商品集合(我怀疑具有虚构值的QMap
是一个非常糟糕的选择)以及为什么Qt
没有提供某些东西比如std::set
?
我想这背后可能有一些技术原因,但不幸的是,我想不出一个。
答案 0 :(得分:3)
来自维基百科:
Haavard Nord和Eirik Chambe-Eng(Qt的原始开发人员和Trolltech的CEO兼总裁)于1991年开始开发“Qt”
同样来自维基百科,关于STL:
贝尔实验室的Andrew Koenig没有意识到这项工作,并要求Stepanov在1993年11月的ANSI / ISO C ++标准化委员会会议上提出主要想法。该委员会的回应非常有利,并导致Koenig要求及时提出1994年3月会议的正式提案。尽管面临巨大的时间压力,Alex和Meng仍然能够提出一份在该次会议上获得初步批准的提案草案。
来自The Man本人:
“正如我经常说的那样,我认为不是运送更大的标准库是我最大的错误。” --Bjarne Stroustrup
Qt独立发展。就这样吧。使用QMap继续你的生活。 :)
(注意:Qt中有一个无序的地图,它被称为QHash)
如果你不能想到一些有用或有趣的东西放入价值槽,那么你的程序可能不够复杂,不能大惊小怪。您的密钥对象中是否有数据成员可以轻松地在地图中创建值?你能不能想到要放在那里的东西?
如果你真的最后每个条目浪费一个字符,那么这是你系统中真正的瓶颈吗?你有证据证明这一点吗?等等。