c++中unordered_map的使用
时间: 2023-02-22 16:54:11 浏览: 107
unordered_map 是 C++ 中 STL 的一种数据结构,它实现了一种无序映射关系,即可以通过键(key)来查询值(value)。
使用 unordered_map 时需要先在程序中引入头文件 `#include <unordered_map>`,然后可以定义一个 unordered_map 变量,比如:
```
unordered_map<string, int> word_count;
```
其中,`string` 表示键的数据类型,`int` 表示值的数据类型。
接下来,可以通过下标操作符 `[]` 来对 unordered_map 进行赋值,例如:
```
word_count["hello"] = 1;
word_count["world"] = 2;
```
同样,也可以通过下标操作符 `[]` 来访问 unordered_map 中的元素,例如:
```
cout << word_count["hello"] << endl;
```
访问 unordered_map 中不存在的元素时,会自动插入一个键为该元素的键,值为零值的元素。因此,需要判断 unordered_map 中是否存在该元素时,可以使用 `count` 函数,例如:
```
if (word_count.count("hello") > 0) {
cout << "hello exists in word_count" << endl;
}
```
需要注意的是,unordered_map 的查询操作和插入操作的时间复杂度都是 O(1) 的。
相关问题
c++中unordered_map的函数
unordered_map是C++标准库中的一个容器,它提供了一种键值对的映射关系。下面是unordered_map常用的一些函数:
1. insert(key, value):向unordered_map中插入一个键值对。
2. erase(key):从unordered_map中删除指定键的元素。
3. find(key):查找指定键的元素,返回一个迭代器。
4. count(key):返回指定键在unordered_map中出现的次数,只能是0或1。
5. size():返回unordered_map中元素的个数。
6. empty():判断unordered_map是否为空。
7. clear():清空unordered_map中的所有元素。
8. begin()和end():返回指向unordered_map首元素和尾后元素的迭代器,用于遍历unordered_map。
C++中unordered_map()
unordered_map是C++标准库中的一个容器,它提供了一种键值对的映射关系。与普通的map相比,unordered_map使用哈希表来实现,因此可以在常数时间内进行插入、删除和查找操作。
unordered_map的特点如下:
1. 键值对的存储:每个元素都是一个键值对,其中键是唯一的,而值可以重复。
2. 哈希表实现:unordered_map使用哈希表来存储键值对,通过哈希函数将键映射到哈希表的索引位置,从而实现快速的插入、删除和查找操作。
3. 无序性:unordered_map中的元素是无序的,即元素的顺序与插入的顺序无关。
使用unordered_map时,需要包含头文件<unordered_map>。以下是unordered_map的一些常用操作:
1. 插入元素:可以使用insert()函数或者使用下标操作符[]来插入键值对。
2. 删除元素:可以使用erase()函数来删除指定键的元素。
3. 查找元素:可以使用find()函数来查找指定键的元素。
4. 访问元素:可以使用下标操作符[]来访问指定键对应的值。