c++中map的常见用法
时间: 2023-07-08 21:17:14 浏览: 199
C++中的map是STL(标准模板库)中的一个关联容器,它提供了一种键值对的映射关系。在map中,每个元素都是一个键值对,其中每个键唯一对应一个值。下面是map的一些常见用法:
1. 创建map对象
可以使用以下语法来创建map对象:
```c++
std::map<key_type, value_type> map_name;
```
2. 插入元素
可以使用以下语法将元素插入到map中:
```c++
map_name.insert(std::pair<key_type, value_type>(key, value));
```
或者可以使用以下简化语法:
```c++
map_name[key] = value;
```
3. 访问元素
可以使用以下语法来访问map中的元素:
```c++
value_type value = map_name[key];
```
4. 删除元素
可以使用以下语法删除map中的元素:
```c++
map_name.erase(key);
```
5. 遍历元素
可以使用以下语法遍历map中的所有元素:
```c++
for (auto& it : map_name) {
key_type key = it.first;
value_type value = it.second;
// do something with key and value
}
```
以上是map的一些常见用法,还有很多其他的用法可以根据具体需求进行探索和使用。
相关问题
c++ map set用法
在C++中,`map`和`set`是两种非常常见的关联容器,它们分别提供了不同的数据存储和访问机制。
1. `map`(也叫关联数组或字典):
- 它是一个键值对的集合,其中每个键都是唯一的,并且按照键的排序存储数据。
- `map`使用`std::map`模板,底层通常使用红黑树实现,提供快速的查找(平均时间复杂度为O(log n))。
- 你可以通过键来访问对应的值,比如`std::map<Key, Value> m;`
- 示例代码:
```cpp
std::map<std::string, int> myMap;
myMap["apple"] = 10;
std::cout << myMap["apple"]; // 输出:10
```
C++ MAP erase的用法
C++中的std::map的erase()函数用于删除map中的元素。它有多种用法,下面我将介绍几种常用的用法:
1. 删除指定键的元素:
```cpp
std::map<Key, Value> myMap;
// 插入一些元素到myMap中
myMap.erase(key); // 删除键为key的元素
```
通过指定键来删除对应的键值对。
2. 删除指定位置的元素:
```cpp
std::map<Key, Value> myMap;
// 插入一些元素到myMap中
auto it = myMap.find(key); // 查找指定键的迭代器
if (it != myMap.end()) {
myMap.erase(it); // 删除迭代器指向的元素
}
```
通过迭代器来删除指定位置的元素。
3. 删除指定范围的元素:
```cpp
std::map<Key, Value> myMap;
// 插入一些元素到myMap中
auto start = myMap.begin();
auto end = myMap.find(key); // 查找指定键的迭代器
if (end != myMap.end()) {
myMap.erase(start, end); // 删除指定范围内的元素
}
```
通过指定范围的迭代器来删除一段连续的元素。
4. 清空map中的所有元素:
```cpp
std::map<Key, Value> myMap;
// 插入一些元素到myMap中
myMap.clear(); // 清空map中的所有元素
```
使用clear()函数清空map中的所有元素。
注意,在使用erase()函数删除元素时,要特别注意迭代器的有效性。删除元素后,迭代器可能会失效,因此应该在删除元素后小心地更新或重新定位迭代器。
这些是std::map中erase()函数的常见用法,你可以根据具体的需求选择适合的用法。
阅读全文