带键的多映射=对
Multimaps with key = pair
本文关键字:映射 更新时间:2023-10-16
我有一个multimap<pair<string,string>,vector> > mmap;
我想用两个循环来迭代它:
- 关于密钥的第一个元素:
key.first
- 则CCD_ 3
equal_range
方法在这种情况下有效吗?怎么写?
pair<multimap<pair<string,string>,vector>::iterator,
multimap<pair<string,string>,vector>::iterator> key_range = mmap.equal_range( ?? );
multimap
只支持单个排序,对于pair
,默认情况下是两个元素的字典排序:
(A, A) (A, B) ... (A, Z) (B, A) (B, B) ... (B, Z) ... (Z, A) ... (Z, Z)
如果你需要用两个不同的键进行索引,最好使用另一个容器,例如Boost.MultiIndex。你可以通过将项目存储在list
中,并持有从键到列表迭代器的映射来实现同样的效果:
list<vector> items;
map<string, list<vector>::iterator> index1;
map<string, list<vector>::iterator> index2;
相关文章:
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- 将函数类成员映射到类本身内部
- 如何在 C# 中映射双 C 结构指针?
- 如何在C++中使用结构生成映射
- 使用std::函数映射对象方法
- 如何加载(或映射)文件部分的最大大小,但适合在Windows上的RAM
- C++映射分割错误(核心转储)
- 内联映射初始化的动态atexit析构函数崩溃
- 使用"std::unordereded_map"映射到"std::list"对象
- 如何从多映射中删除特定的重复项
- 在未初始化映射的情况下,将值插入到映射的映射中
- QT通过C++添加映射QML项目
- 在c++中访问int到类对象的映射时出错
- 在C++中搜索嵌套多映射值
- 错误处理.将系统错误代码映射到泛型
- C++匿名结构作为std::映射值
- 如何从存储在std::映射中的std::集中删除元素
- 递归无序映射
- 正在VS调试器中监视映射条目