C++ C++;有没有一种方法可以使用向量的内容作为键和自定义值来初始化无序的_映射?

C++ C++;有没有一种方法可以使用向量的内容作为键和自定义值来初始化无序的_映射?,c++,dictionary,vector,unordered-map,C++,Dictionary,Vector,Unordered Map,假设我有一个向量 vector<int> vect; vect.push_back(2); vect.push_back(3); vect; 向量推回(2); 向量推回(3); 现在我想要一个无序的_映射,其中2和3作为键,0作为所有键的默认值 有办法吗 我试过了 unordered_map<int, int> myMap(vect.begin(), vect.end()); 无序映射myMap(vect.begin(),vect.end()); 希望它能用向量中

假设我有一个向量

vector<int> vect;
vect.push_back(2);
vect.push_back(3);
vect;
向量推回(2);
向量推回(3);
现在我想要一个无序的_映射,其中2和3作为键,0作为所有键的默认值

有办法吗

我试过了

unordered_map<int, int> myMap(vect.begin(), vect.end());
无序映射myMap(vect.begin(),vect.end());
希望它能用向量中的键和默认的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); });
vector向量={2,3,4};
无序地图;
转换(vect.begin(),vect.end(),inserter(map,map.end()),[](intv){return make_pair(v,0);});

我不这么认为。一种方法是创建一个包含
std::pair
值的
std::vector
,然后使用它初始化
无序映射。但这可能不是你想要的。我感兴趣的是是否真的有办法做到这一点。更简单的方法是(inti:vect)map[I]