unordered_map原型
时间: 2023-10-13 09:04:44 浏览: 112
`std::unordered_map` 是 C++ 标准库提供的哈希表容器,用于存储键值对。它的原型定义如下:
```cpp
template<
class Key,
class T,
class Hash = std::hash<Key>,
class KeyEqual = std::equal_to<Key>,
class Allocator = std::allocator<std::pair<const Key, T>>
> class unordered_map;
```
`std::unordered_map` 是一个模板类,有五个模板参数:
1. `Key`:键的类型。
2. `T`:值的类型。
3. `Hash`:哈希函数对象的类型,用于计算键的哈希值,默认为 `std::hash<Key>`。
4. `KeyEqual`:键相等比较函数对象的类型,默认为 `std::equal_to<Key>`。
5. `Allocator`:内存分配器的类型,默认为 `std::allocator<std::pair<const Key, T>>`。
`std::unordered_map` 提供了一系列成员函数来进行键值对的插入、查找、删除等操作。常用的成员函数包括:
- `insert()`:插入一个键值对或者一个范围内的键值对。
- `find()`:根据键查找对应的迭代器,如果找到则返回指向该键值对的迭代器,否则返回指向尾部的迭代器。
- `erase()`:根据键或迭代器删除一个或多个键值对。
- `size()`:返回容器中键值对的个数。
- `clear()`:清空容器中的所有键值对。
除了以上的成员函数,`std::unordered_map` 还重载了一系列运算符,比如 `[]` 运算符用于访问和修改指定键对应的值,`==` 和 `!=` 运算符用于比较两个 `unordered_map` 是否相等等。
需要包含 `<unordered_map>` 头文件,并使用 `std` 命名空间来使用 `std::unordered_map`。
阅读全文