C++ STL map容器
时间: 2024-08-13 21:10:16 浏览: 73
C++ Standard Template Library (STL) 提供了一个名为`map`的容器,它是一个关联容器,用于存储键值对(key-value pairs),其中每个键都是唯一的,并映射到与其相关的值。`map`实现了红黑树(Red-Black Tree)的数据结构,这使得查找、插入和删除操作的时间复杂度通常为O(log n)。
以下是使用`map`的基本操作示例:
1. **创建并初始化map**:
```cpp
#include <map>
#include <iostream>
int main() {
std::map<std::string, int> myMap; // 创建一个空的map,键是std::string类型,值是int类型
// 插入键值对
myMap["apple"] = 1;
myMap["banana"] = 2;
myMap["cherry"] = 3;
return 0;
}
```
2. **查找元素**:
```cpp
// 查找指定键对应的值
if (myMap.find("banana") != myMap.end()) {
std::cout << "Value of banana: " << myMap["banana"] << std::endl;
}
```
3. **访问元素**:
```cpp
// 访问第一个键值对(默认按升序排列)
auto it = myMap.begin();
std::cout << "First key-value pair: (" << it->first << ", " << it->second << ")" << std::endl;
```
4. **迭代遍历**:
```cpp
for (const auto& entry : myMap) {
std::cout << "Key: " << entry.first << ", Value: " << entry.second << std::endl;
}
```
5. **删除元素**:
```cpp
myMap.erase("cherry"); // 删除键为"cherry"的项
```
请注意,如果尝试插入重复的键,`map`会保留最后一个插入的值。
阅读全文