使用QPair和QString选择正确的数据结构

时间:2012-08-16 06:49:35

标签: c++ qt

我想存储QPair和QString,换句话说我想为每个索引存储三个值(int,int,String)。为此目的我选择了一个QMap,结果没问题,QString用作键,QPair用作值。

到目前为止,我只迭代了QMap,但是当我想查找其中一个键(QString)时出现问题。当我使用myQMap.key(myQPair)时,返回的字符串是空白的(我知道我想要的字符串不是空白的)。

所以问题是如何通过使用QPair作为参数来查找QString? QPair能否成为关键?据我所知,这不会奏效。

3 个答案:

答案 0 :(得分:2)

听起来你想要一个像数据结构这样的地图可以双向工作;您想使用QPair<int,int>作为关键字查找QString,并希望使用QString作为关键字查找QPair<int,int>

Qt中没有提供此功能的类。因此,您必须自己实施(有很多方法),或者您可以使用boost::bimap

答案 1 :(得分:1)

没有std::map之类的对象可以将该值用作键,这会破坏它的用途。

您需要的是boost::bimapdocs)。

答案 2 :(得分:0)

我通过创建两个地图解决了这个问题。