was*_*abi 0 c++ unordered-map initialization
我只是想用一个向量初始化一个 unordered_map。
当我尝试下面的代码时,代码无法编译。
用向量初始化 unordered_map 的最短语法是什么?您将如何在不使用循环的情况下实现以下方法。
unordered_map<int, int> convertToMap(const vector<int>& v)
{
unordered_map<int, int> umap(v.begin(), v.end());
return umap;
}
Run Code Online (Sandbox Code Playgroud)
我找到了一些资源,并尝试通过一个范围进行初始化,但它也不起作用!
如何用向量初始化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;
}
Run Code Online (Sandbox Code Playgroud)
以上印刷品:20