std::multimap 打印所有元素
时间: 2023-04-11 16:00:32 浏览: 85
可以使用迭代器遍历 multimap 中的所有元素,然后打印出来。以下是示例代码:
```c++
#include <iostream>
#include <map>
int main() {
std::multimap<int, std::string> myMap = {{1, "apple"}, {2, "banana"}, {1, "orange"}};
for (auto it = myMap.begin(); it != myMap.end(); ++it) {
std::cout << it->first << " : " << it->second << std::endl;
}
return 0;
}
```
输出结果为:
```
1 : apple
1 : orange
2 : banana
```
相关问题
std::multimap重复元素
`std::multimap` 允许重复元素。当插入一个重复的元素时,它会被插入到容器中而不是替换掉原有的元素。如果你想删除所有重复的元素,可以使用 `std::multimap::equal_range` 函数来获取一个迭代器范围,然后用 `std::multimap::erase` 函数删除这个范围内的所有元素。以下是一个示例代码:
```c++
#include <iostream>
#include <map>
int main() {
std::multimap<int, std::string> mm;
mm.insert(std::make_pair(1, "apple"));
mm.insert(std::make_pair(2, "banana"));
mm.insert(std::make_pair(3, "orange"));
mm.insert(std::make_pair(1, "pear"));
mm.insert(std::make_pair(2, "peach"));
mm.insert(std::make_pair(3, "lemon"));
// 输出所有元素
for (auto it = mm.begin(); it != mm.end(); ++it) {
std::cout << it->first << ": " << it->second << std::endl;
}
// 删除所有键为 2 的元素
auto range = mm.equal_range(2);
mm.erase(range.first, range.second);
// 输出剩余元素
for (auto it = mm.begin(); it != mm.end(); ++it) {
std::cout << it->first << ": " << it->second << std::endl;
}
return 0;
}
```
输出结果为:
```
1: apple
1: pear
2: banana
2: peach
3: orange
3: lemon
1: apple
1: pear
3: orange
3: lemon
```
可以看到,重复的元素被保留了下来,而键为 2 的元素被删除了。
std::multimap
std::multimap 是 C++ 标准库中的一个容器类,它实现了一个有序的键-值存储结构。与 std::map 不同的是,std::multimap 允许一个键对应多个值,因此它可以存储重复的键。你可以将键值对插入到 multimap 中,并根据键进行排序和访问。
使用 std::multimap 需要包含头文件 <map>,以下是一个简单的示例代码:
```cpp
#include <iostream>
#include <map>
int main() {
std::multimap<int, std::string> myMap;
// 插入键值对
myMap.insert(std::make_pair(1, "apple"));
myMap.insert(std::make_pair(2, "banana"));
myMap.insert(std::make_pair(3, "cherry"));
myMap.insert(std::make_pair(2, "grape")); // 插入重复的键
// 遍历 multimap
for (const auto& pair : myMap) {
std::cout << "Key: " << pair.first << ", Value: " << pair.second << std::endl;
}
return 0;
}
```
输出结果将会是:
```
Key: 1, Value: apple
Key: 2, Value: banana
Key: 2, Value: grape
Key: 3, Value: cherry
```
通过这个例子,你可以看到插入重复的键时,std::multimap 可以保存多个对应的值。希望这个回答能够帮到你!如果还有其他问题,请继续提问。