C ++填充地图<string,vector <int>&gt; </string,vector <int>

时间:2014-11-27 17:55:13

标签: c++ vector map

我有两个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;

为什么会失败?

2 个答案:

答案 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;