是否有方法使用vector的内容作为键和自定义值来初始化unordered_map ?



假设我有一个向量

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

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

有办法吗?

I tried doing

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

希望将vector中的内容初始化为键和默认的int值。

但是,它不能。

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

我只是想知道我是否可以在声明期间做一行。

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

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); });

最新更新