使用 QPair 和 QString 选择正确的数据结构
Choosing the right datastructure with QPair and QString
我想存储一个QPair和QString,或者换句话说,我想为每个索引存储三个值(int,int,String)。为此,我选择了一个QMap,效果很好,其中QString作为键,QPair作为值。
到目前为止,我只遍历了 QMap,但是当我想查找其中一个键 (QString) 时会出现问题。当我使用 myQMap.key(myQPair)
返回的字符串为空时(我知道我想要的字符串不是空的)。
所以问题是我如何仅使用 QPair 作为参数来查找 QString?QPair可以作为关键吗?据我所知,这是行不通的。
听起来你想要一个双向工作的数据结构;你想用QString
作为键来查找QPair<int,int>
,你想用QPair<int,int>
作为键来查找QString
。
Qt中没有提供此功能的类。所以要么你必须自己实现它(有很多方法),要么你可以使用 boost::bimap
没有像对象这样的std::map
可以使用值作为键,这违背了它的目的。
您需要的是boost::bimap
(文档)。
我通过创建两个地图解决了这个问题。
相关文章:
- 链表,反向函数,数据结构
- 如何使用set实现无序数据结构?
- 我们可以将数据永久保存为数据结构吗?
- C++中的可变长度数组/数据结构
- 用于存储由空格分隔的字符串的 C++/C 数据结构
- 通过 NIF 从C++返回自定义数据结构
- 编译器上的策略数据结构不起作用
- 使用选择排序对数组数据结构进行排序,但它不起作用
- 对于这个问题,是否有更好的数据结构和算法选择
- 哪种数据结构和设计用于选择最佳整数集
- 数据结构-选择排序方法
- 使用 QPair 和 QString 选择正确的数据结构
- 用于选择计算机组的数据结构
- 选择合适的数据结构
- 选择一个有效的数据结构来寻找韵律
- 选择合适的FIFO数据结构
- 如何根据c++项目的不同性能要求设计或选择数据结构
- 我应该使用什么数据结构来支持插入、删除和随机选择
- 选择合适的数据结构
- 数据结构/容器选择