gpt4 book ai didi

c++ - 从两个 vector 创建 map

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:04:34 25 4
gpt4 key购买 nike

如果我有两个 STL vector vect1、vect2 并且我想从它们生成一个映射,那么 vect1 中的第一个元素将对应于 vect2 中的第一个元素,依此类推。我怎样才能以最简单的方式做到这一点?

最佳答案

这是一个使用标准库函数(和 C++0x lambda)的解决方案。

const int data1[] = { 0, 2, 4, 6, 8 };
const int data2[] = { 1, 3, 5, 7, 9 };
std::vector<int> vec1(data1, data1 + 5);
std::vector<int> vec2(data2, data2 + 5);
std::map<int,int> map;

// create map
std::transform(vec1.begin(), vec1.end(), vec2.begin(), std::inserter(map, map.end()), [](int a, int b)
{
return std::make_pair(a, b);
});

// display map
std::for_each(map.begin(), map.end(), [](const std::pair<int,int>& p)
{
std::cout << p.first << "," << p.second << "\n";
});

注意:这里假设 vec1.size() 不大于 vec2.size()。

关于c++ - 从两个 vector 创建 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4946424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com