2

我想存储一个 QPair 和 QString,或者换句话说,我想为每个索引存储三个值(int、int、String)。为此,我选择了一个 QMap,效果还不错,其中 QString 作为键,QPair 作为值。

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

所以问题是我如何仅使用 QPair 作为参数来查找 QString ?QPair 可以作为关键吗?据我了解,这是行不通的。

4

3 回答 3

2

听起来你想要一个像地图一样双向工作的数据结构;您想QPair<int,int>使用 aQString作为键查找 a 并且您想QString使用 aQPair<int,int>作为键查找 a。

Qt 中没有提供此功能的类。所以要么你必须自己实现这个(有很多方法),或者你可以使用boost::bimap

于 2012-08-16T07:01:39.013 回答
1

没有std::map类似的对象可以使用该值作为键,这违背了它的目的。

您需要的是boost::bimap文档)。

于 2012-08-16T07:01:19.197 回答
0

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

于 2013-06-19T15:04:33.297 回答