map的底层,作用,以及判断key是否存在
时间: 2023-08-16 11:06:25 浏览: 94
C++标准模板库map的常用操作
5星 · 资源好评率100%
map是C++ STL中的一种关联容器,它提供了一种将键映射到值的方式。它的底层通常是一个红黑树,因此可以以O(log n)的时间复杂度进行查找、插入、删除等操作。
map的作用是建立一种键-值对的映射关系,通过键可以快速地查找到对应的值。这种映射关系非常适合需要快速查找的场景,比如字典、索引等。
判断key是否存在可以使用map的count()或者find()函数。count()函数返回的是key在map中出现的次数,如果key不存在,则返回0;如果key存在,则返回1。find()函数返回的是一个迭代器,指向key所对应的键值对。如果key不存在,则返回map的end()迭代器,可以通过判断返回的迭代器是否等于end()来判断key是否存在。例如:
```cpp
#include <iostream>
#include <map>
using namespace std;
int main() {
map<string, int> m;
m["apple"] = 1;
m["banana"] = 2;
m["orange"] = 3;
// 判断key是否存在
if (m.count("apple")) {
cout << "apple exists in map." << endl;
} else {
cout << "apple does not exist in map." << endl;
}
if (m.find("pear") != m.end()) {
cout << "pear exists in map." << endl;
} else {
cout << "pear does not exist in map." << endl;
}
return 0;
}
```
输出结果为:
```
apple exists in map.
pear does not exist in map.
```
阅读全文