unordered_map类型定义和常用操作
时间: 2023-11-24 21:51:10 浏览: 71
CC++常用头文件及函数汇总_CC++常用头文件及函数汇总_头文件汇总表_
unordered_map是C++ STL中的一个关联容器,它提供了一种将键映射到值的方法。下面是unordered_map的类型定义和常用操作:
1.类型定义
unordered_map的类型定义如下:
```c++
template < class Key, // unordered_map::key_type
class T, // unordered_map::mapped_type
class Hash = hash<Key>, // unordered_map::hasher
class Pred = equal_to<Key>, // unordered_map::key_equal
class Alloc = allocator< pair<const Key,T> > // unordered_map::allocator_type
> class unordered_map;
```
其中,Key表示键的类型,T表示值的类型,Hash表示哈希函数的类型,Pred表示键相等比较函数的类型,Alloc表示分配器的类型。
2.常用操作
以下是unordered_map的常用操作:
(1)构造函数
```c++
unordered_map<string, int> mymap; // 创建一个空的unordered_map对象
unordered_map<string, int> mymap2 = {{"apple", 1}, {"banana", 2}, {"orange", 3}}; // 创建一个包含三个键值对的unordered_map对象
```
(2)插入元素
```c++
mymap.insert(make_pair("apple", 1)); // 插入一个键值对
mymap["banana"] = 2; // 插入一个键值对
```
(3)访问元素
```c++
int value = mymap["apple"]; // 获取键为"apple"的值
if (mymap.count("banana")) { // 判断键为"banana"的元素是否存在
int value2 = mymap["banana"]; // 获取键为"banana"的值
}
```
(4)删除元素
```c++
mymap.erase("apple"); // 删除键为"apple"的元素
```
(5)容量操作
```c++
bool empty = mymap.empty(); // 判断unordered_map是否为空
int size = mymap.size(); // 获取unordered_map的有效元素个数
```
阅读全文