我有两个stl容器:
vector<vector<int>> numbers;
vector<string> names;
如何将数据从它们保存到map中,其中string是一个键并且是一个值? 我试过这个:
map<string, vector<string>> names_numbers;
for (int i = 0; i < names.size(); i++) {
names_numbers[names[i]] = numbers[i];
}
矢量的大小是相同的。但是我总是得到这个错误:
Error 3 error C2679: binary '=' : no operator found which takes a right-hand operand of typ 'std::vector<int,std::allocator<_Ty>>' (or there is no acceptable conversion)
如何填充地图的一个选项是使用= operand:
map[key] = value;
为什么会失败?
答案 0 :(得分:3)
您尝试分配vector<int>
,但names_numbers
值的类型为vector<string>
。
答案 1 :(得分:2)
map<string, vector<string>> names_numbers;
您已将地图获取值声明为字符串向量,而您正在向其中插入一个整数向量。
names_numbers[names[i]] = numbers[i]; <<< It's a vector of int's.
vector<vector<int>> numbers;