gpt4 book ai didi

c++ - 反向映射值 c++

转载 作者:行者123 更新时间:2023-11-30 00:36:38 25 4
gpt4 key购买 nike

我创建了一张 map :

map<int, int> mapOriginal;

填充数据后,如下所示:

mapOriginal[0] = 3;
mapOriginal[1] = 2;
mapOriginal[2] = 1;

并且 mapOriginal 输出是:

  0->  3
1-> 2
2-> 1

我想创建另一个 map :

map<int, int> mapReverse;

但是我怎样才能将 mapOriginal 值反转为 mapReverse:

并且 mapReverse 输出将是:

  0-> 1
1-> 2
2-> 3

最佳答案

您可以同时向前和向后迭代 map :

std::map<int, int>::const_iterator forwardIt = mapOriginal.begin();
std::map<int, int>::const_reverse_iterator reverseIt = mapOriginal.rbegin();
for ( ;
forwardIt != mapOriginal.end() ;
++forwardIt, ++reverseIt)
{
mapReverse[forwardIt->first] = reverseIt->second;
}

但是,这似乎是对 map 的一种不寻常的使用。您确定载体不能满足您的需求吗?

std::vector<int> vec { 3, 2, 1 };

std::vector<int> reverseVec;
std::reverse_copy(vec.begin(), vec.end(), std::back_inserter(reverseVec));
// or, if you want to reverse in-place:
std::reverse(vec.begin(), vec.end());

关于c++ - 反向映射值 c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15664749/

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