C++ multimap容器如何初始化同样得key 并实现增删改查
时间: 2024-10-19 16:09:55 浏览: 29
C++ STL(vector+multimap容器)案例
在C++中,`std::multimap`是一个关联容器,它存储键值对,并允许每个键对应多个值。如果你需要初始化一个`multimap`并保持相同的键,你需要创建一个包含多个相同键值对的集合。这里有一个简单的例子说明如何操作:
```cpp
#include <map>
#include <string>
int main() {
// 定义数据类型和键的类型
using KeyType = std::string;
using ValueType = int;
// 初始化一个空的multimap,键是字符串,值是整数
std::multimap<KeyType, ValueType> multiMap;
// 添加相同键的不同值
multiMap.insert({ "apple", 5 });
multiMap.insert({ "banana", 7 });
multiMap.insert({ "apple", 10 }); // 这里添加了另一个"apple"
// 打印初始内容
for (const auto &pair : multiMap) {
std::cout << "Key: " << pair.first << ", Value: " << pair.second << '\n';
}
// 删除一个键的所有实例
multiMap.erase(multiMap.find("banana"));
// 查询一个键是否存在
if (multiMap.count("apple") > 0) {
std::cout << "Found 'apple' with value(s): ";
for (const auto &value : multiMap["apple"]) {
std::cout << value << ' ';
}
} else {
std::cout << "'apple' not found.\n";
}
return 0;
}
```
在这个例子中,我们首先插入了两个"apple"键,每个键关联一个不同的值。然后通过`erase`删除了一个键的某个值实例,最后检查"apple"键是否存在以及其相关的所有值。
阅读全文