C ++有没有办法使用vector的内容作为键和自定义值来初始化unordered_map?

时间:2015-10-25 02:09:07

标签: c++ dictionary vector unordered-map

我们说我有一个向量

vector<int> vect;
vect.push_back(2);
vect.push_back(3);

现在我想要一个unordered_map,其中2和3为键,0为所有这些键的默认值。

有办法吗?

我试过

unordered_map<int, int> myMap(vect.begin(), vect.end());

希望它能够使用向量中的内容作为键和默认的int值进行初始化。

然而,它无法实现。

我的意思是,我总是可以迭代向量并手动插入对。

我只是想知道我是否可以在声明期间将其作为一个班轮。

1 个答案:

答案 0 :(得分:1)

实际上,一个简单的衬垫就足够了,但不是声明:

vector<int> vect = { 2, 3, 4};
unordered_map<int,int> map;
transform(vect.begin(), vect.end(), inserter(map, map.end()), [] (int v) { return make_pair(v, 0); });