C++中vector可以作为map的键值实例代码

时间:2021-10-11 07:38:54

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#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;
}

以上所述是小编给大家介绍的C++中vector可以作为map的键值实例代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

原文链接:http://blog.csdn.net/u013992365/article/details/74838636