c++中unordered_map的使用
时间: 2023-02-22 20:54:11 浏览: 163
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的使用需要加库函数#include<unordered_map>吗
是的,使用C++中的unordered_map需要包含头文件<unordered_map>。unordered_map是C++标准库中的一个容器,用于存储键值对。它提供了快速的查找和插入操作,并且不会对元素进行排序。
下面是unordered_map的基本用法示例:
```cpp
#include <iostream>
#include <unordered_map>
int main() {
// 创建一个unordered_map对象
std::unordered_map<std::string, int> myMap;
// 插入键值对
myMap["apple"] = 10;
myMap["banana"] = 5;
myMap["orange"] = 8;
// 访问元素
std::cout << "The number of apples is: " << myMap["apple"] << std::endl;
// 遍历unordered_map
for (const auto& pair : myMap) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
return 0;
}
```
需要注意的是,unordered_map是C++11引入的特性,因此编译时需要使用支持C++11的编译器,并且在编译命令中加入对应的标志(如`-std=c++11`)。
C++中unordered_map
在C++中,unordered_map是一种关联容器,用于存储键值对。可以通过键快速查找值,其元素是无序的。在unordered_map中,我们可以使用at和[ ]两种操作来获取元素的值。例如,m和m.at(1)都可以获取键为1的元素的值。
此外,unordered_map还提供了一些容量查询的函数,例如empty()用于查询是否为空,size()用于查询键值对的数量,max_size()用于查询unordered_map所能包含的最大键值对数量。还有count()函数可以查询关键字为key的元素的个数。在unordered_map中,返回的结果非0即1。
如果需要删除元素,可以使用erase()函数。erase()函数可以删除迭代器指向的位置的键值对,并返回一个指向下一元素的迭代器。还可以使用erase()函数删除一定范围内的元素,以及根据Key来进行删除。clear()函数可以清空整个unordered_map。
另外,我们可以使用find()函数来进行关键字查询。如果找到了该关键字,find()函数会返回指向该关键字的迭代器;如果未找到,则会返回指向end的迭代器。根据unordered_map的类型不同,返回的迭代器可以是iterator或者const_iterator。<span class="em">1</span>
#### 引用[.reference_title]
- *1* [C++ unordered_map](https://blog.csdn.net/weixin_43203889/article/details/116029452)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文