首选数据结构,如果您有两个键并且无法使用Boost
Preferred data structure if you have two keys and can not use boost?
如果您有两个键,您喜欢什么数据结构,并且不能使用boost::multiindex
?
我可以拥有带有key1和/或key2的多个记录,但仅有一个记录key1 key2。我的要求是我应该能够搜索
- key1的所有记录
- key2的所有记录
- 单记录给定键1和key2
目前我正在使用std :: map
std::map <CString, std::vector<CutomClass>> m_map;
因此,第一个键在地图中使用,而另一个是我的班级的一部分(此类单独使用更多数据使用第二个键(
我可以使用其他数据结构吗?
我由于某种原因无法使用boost库,因此我只从标准库中寻求建议。
我实现的方式将使用三个数据结构。两个multi_map
(或unordered_multimap
(,一个OFF KEY1
,另一个键为KEY2
。
key1 key2组合的第三个将我的 map
( unordered_map
(。对于map
,这将是简单明了的,对于unordered_map
,您必须组合键,或者,哈希两个子键,而不是组合哈希。
我似乎忘记了提到,只有其中一个地图(组合密钥的钥匙(将拥有实际值,另外两个地图将使在合并地图中保持的值保持指针。
相关文章:
- 如何在两个 boost::multi_arrays (C++) 之间执行数学运算?
- 使用 boost::regex (c++) 比较两个正则表达式
- 两个并发的 Python 进程可以在 Boost Python 中运行吗?
- 检查两个 Boost.MPL 序列是否按任何顺序包含相同的类型
- Boost.Test - 如何在交叉点上检查两个向量
- 是否有任何方法可以将两个boost :: multipRecision :: cpp_int编号乘以
- C 带有两个线程的boost async_read vs
- 如何使用 Boost Spirit x3 编写具有两个后操作数语法的二进制运算符?
- 首选数据结构,如果您有两个键并且无法使用Boost
- boost::multiprecision::pow,具有两个cpp_int值
- 如何加入两个Boost Hana地图
- Boost 在两个进程(C 和 C++)之间的managed_shared_memory使用情况
- 在安装了两个不同 Boost 版本的系统上编译C++代码
- boost::asio::async_connect 不仅创建一个 TCP 连接,还创建两个
- Boost::ASIO:使用两个进程的双向通信
- 我可以在两个不同的类实例中使用boost asio套接字引用吗
- 使用谷歌测试中的EXPECT_EQ比较两个boost::变体对象
- 如何组合两个Boost Geometry变换器
- 比较具有相同顶点的两个boost图
- 比较两个boost::函数