multimap查询-我们存储具有多个值的键的顺序
multimap query - order in which we store keys with multiple values
可能重复:
stl的多映射如何插入尊重顺序?
我有一个多重映射如下-multimap<string,string> myMultiMap;
myMultiMap[sKey] = s1;
myMultiMap[sKey] = s2;
myMultiMap[sKey] = s3;
我依次加上s1、s2、s3。稍后,我可能会传递一个值1,2,3,并在此基础上得到它的值。
例如,如果我通过了"1",我应该返回s1。
如果我这样做-iterator = myMultiMap.equal_range(sKey);
获取迭代器列表中第一个元素的值。
这行吗?迭代器是否按照插入键的顺序存储键的值(如果是多个值(?
请告知。
thx-Anand
在C++11中,检索的顺序似乎与插入的顺序相同(请参见此处:http://en.cppreference.com/w/cpp/container/multimap)
我在GCC 4.7.1上尝试了以下短程序,它满足了我的期望:
#include <iostream>
#include <map>
#include <algorithm>
using namespace std;
int main()
{
multimap<string, string> m;
m.insert({"a", "x"});
m.insert({"a", "y"});
m.insert({"a", "z"});
auto r = m.equal_range("a");
for_each(r.first, r.second, [] (decltype(*(r.first))& p) { cout << p.second << endl; });
return 0;
}
附言:请注意,std::multimap
没有operator []
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- CMake-按正确顺序将项目与C运行时对象文件链接
- 函数调用中参数的顺序重要吗
- 查询SQLite数据库中的日期
- 为什么不;名字在地图上是按顺序排列的吗
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 数到第n个楼梯的路(顺序无关紧要)
- 优先顺序:智能指针和类析构函数
- 在循环中按顺序遍历成员变量
- 独立读取-修改-写入顺序
- QML按钮点击功能执行顺序
- 如何在ArangoDb AQL查询中指定数据库
- C++中数据类型修饰符的顺序
- 当比特(而不是字节)的顺序至关重要时的持久性
- C++从其他 constexpr 创建 lambda 不能按顺序执行 Constexpr
- 通过选项卡的文本设置QTabWidget顺序
- c++11评估顺序(未定义的行为)
- 顺序搜索查询
- Pthread查询:线程顺序错误
- multimap查询-我们存储具有多个值的键的顺序