C++ 有没有办法使用 vector 的内容作为键和自定义值来初始化 unordered_map?

标签 c++ dictionary vector unordered-map

假设我有一个 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/

相关文章:

c++ - 未定义对 'cudaRegisterLinkedBinary'的引用-CMake中的链接错误?

c++ - boost::graph 自定义权重类型:numeric_limits 必要吗?

c++ - php 中的 Oci 比 occi 快得多吗?

Java 8 : How to create map from list where Key is fetched from same class (empID) and value as object(Employee) itself?

c# - 从列表转换为字典,foreach 语句有问题

c++ - 为什么这个模板函数不能编译 C++

javascript - 使用 HTML5 放大国家/地区的世界地图

用于固定大小和预定义类型数据的 C++ vector 、列表或数组

c++ - 使用 std::find 从 vector 中选择一个项目

c++ - 改变存储在 QVector 中的结构的状态