Qt容器 - 我应该选择哪个?

时间:2012-04-20 18:35:00

标签: c++ qt containers stdset

Qt提供了一组STL - 类似containers.

但是,没有可用的容器,它按订单(如std::setQSet存储订购的值,原因有点像std::unordered_set。我意识到在调用的“set”数据结构中查找可能是O(1)可能是件好事,但我当然无法理解为什么做出这个决定。

我应该使用哪个容器来存储订购的商品集合(我怀疑具有虚构值的QMap是一个非常糟糕的选择)以及为什么Qt没有提供某些东西比如std::set

我想这背后可能有一些技术原因,但不幸的是,我想不出一个。

1 个答案:

答案 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

如果你不能想到一些有用或有趣的东西放入价值槽,那么你的程序可能不够复杂,不能大惊小怪。您的密钥对象中是否有数据成员可以轻松地在地图中创建值?你能不能想到要放在那里的东西?

如果你真的最后每个条目浪费一个字符,那么这是你系统中真正的瓶颈吗?你有证据证明这一点吗?等等。