我只是想用向量初始化一个unordered_map。
当我尝试下面的代码时,代码无法编译。
使用向量初始化unordered_map的最短语法是什么?如何在不使用循环的情况下实现以下方法。
unordered_map<int, int> convertToMap(const vector<int>& v)
{
unordered_map<int, int> umap(v.begin(), v.end());
return umap;
}
我找到了一些资源,我试图通过范围初始化,但它也没有用!
答案 0 :(得分:3)
如何用vector初始化unordered_map?
如果你的向量包含元素对,那么一个可以被解释为键,一个可以被解释为值,那么你可以使用范围初始化:
#include <vector>
#include <unordered_map>
#include <iostream>
#include <utility>
int main()
{
std::vector<std::pair<int, int>> v = { {1,10}, {2,20}, {3,30} };
std::unordered_map<int, int> map(v.begin(), v.end());
std::cout << map[2] << std::endl;
return 0;
}
以上版画:20