c++怎么把multimap倒过来
时间: 2023-12-25 18:01:24 浏览: 75
multimap是一个可以存储键和多个值的数据结构,如果想要将multimap倒过来,即将值作为键,将键作为值,可以通过以下步骤实现。
首先,创建一个空的新的multimap。
然后,遍历原有的multimap,将原有的键值对互换位置,即将原有的值作为新multimap的键,原有的键作为新multimap的值,然后插入到新的multimap中。
最后,将新的multimap替换原有的multimap,这样就完成了将multimap倒过来的操作。
以下是一个示例代码:
```cpp
#include <iostream>
#include <map>
#include <iterator>
int main() {
std::multimap<int, std::string> original = {{1, "apple"}, {2, "banana"}, {3, "apple"}, {4, "orange"}};
std::multimap<std::string, int> reversed;
for (auto it = original.begin(); it != original.end(); ++it) {
reversed.insert(std::make_pair(it->second, it->first));
}
original = reversed;
for (auto it = original.begin(); it != original.end(); ++it) {
std::cout << it->first << " : " << it->second << std::endl;
}
return 0;
}
```
通过以上代码,就可以将原有的multimap倒过来,即将值作为键,将键作为值存储在新的multimap中。
阅读全文