假设我有一个 vector
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());
希望它能使用 vector 中的内容作为键和默认 int 值进行初始化。
但是,它不能。
我的意思是,我总是可以迭代 vector 并手动插入对。
我只是想知道我是否可以在申报时作为单行进行。
最佳答案
实际上一个简单的衬垫就足够了,但不能在声明上:
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); });
关于C++ 有没有办法使用 vector 的内容作为键和自定义值来初始化 unordered_map?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33325470/