C++中vector可以作为map的键值

来源:互联网 发布:mac qq音乐退出登录 编辑:程序博客网 时间:2024/06/09 13:57

因为项目中需要根据状态找到一个对应的结果,就采用了map的结构,但是状态本身较为复杂,存在一个vector中。上次使用map的经验是自定义类类型作为键值必须重载<操作符,因为map的快速查找是基于红黑树的构建,因而键值必须能相互之间比较。所以担心vector作为类类型的键值会引发一些错误,就写了一个例子测试。结果证明vector可以直接作为map的键值使用。

#include<iostream>#include<string>#include<vector>#include<map>using namespace std;int main(){    map<vector<int>, vector<int>> mm;    vector<int> a, b, c;    a.push_back(1);    b.push_back(2);    c.push_back(3);    mm.insert(map<vector<int>, vector<int>>::value_type(a, b));    mm.insert(map<vector<int>, vector<int>>::value_type(b, b));    mm.insert(map<vector<int>, vector<int>>::value_type(c, b));    mm.insert(map<vector<int>, vector<int>>::value_type(a, a));    return 0;}
原创粉丝点击