unordermap相关的函数有哪些并解释其作用和用法
时间: 2024-03-12 17:46:18 浏览: 15
`unordered_map` 是 C++ STL 中的一个哈希表容器,用于存储键-值对。以下是 `unordered_map` 的一些常用函数及其作用和用法:
1. `insert(key, value)`:将 key-value 对插入到哈希表中。如果 key 已经存在,则不会插入,返回一个 `pair` 对象,其中第一个元素是指向已存在的元素的迭代器,第二个元素是一个布尔值,表示插入是否成功。
```c++
unordered_map<string, int> myMap;
myMap.insert(make_pair("apple", 3));
myMap.insert({"banana", 2});
```
2. `find(key)`:查找哈希表中是否存在指定的 key。如果存在,则返回指向该元素的迭代器;如果不存在,则返回 `end()`。
```c++
auto it = myMap.find("apple");
if (it != myMap.end()) {
cout << it->second << endl; // 输出 3
}
```
3. `erase(key)`:从哈希表中删除指定的 key 及其对应的 value。如果 key 不存在,则不会进行删除操作。
```c++
myMap.erase("banana");
```
4. `size()`:返回哈希表中键-值对的数量。
```c++
cout << myMap.size() << endl; // 输出 1
```
5. `clear()`:清空哈希表中的所有键-值对。
```c++
myMap.clear();
```
6. `empty()`:判断哈希表是否为空。
```c++
if (myMap.empty()) {
cout << "myMap is empty" << endl;
}
```
7. `operator[]`:访问哈希表中指定 key 对应的 value。如果 key 不存在,则会进行插入操作,value 默认初始化。
```c++
cout << myMap["apple"] << endl; // 输出 3
myMap["orange"] = 4;
```