c++ unordered_map的用法
时间: 2023-11-10 22:06:00 浏览: 42
C++标准库中的unordered_map是一种关联容器,它提供了一种从键到值的映射。与map不同,unordered_map不会按照键的顺序进行排序,而是使用哈希表来实现快速查找。以下是unordered_map的用法示例:
```c++
#include <iostream>
#include <unordered_map>
#include <string>
int main() {
std::unordered_map<std::string, int> umap;
// 插入元素
umap.insert({"apple", 1});
umap.insert({"banana", 2});
umap.insert({"cherry", 3});
// 访问元素
std::cout << "apple: " << umap["apple"] << std::endl;
std::cout << "banana: " << umap.at("banana") << std::endl;
// 遍历元素
for (const auto& [key, value] : umap) {
std::cout << key << ": " << value << std::endl;
}
return 0;
}
```
输出结果为:
```
apple: 1
banana: 2
apple: 1
banana: 2
cherry: 3
```
相关问题
c++ unordered_map方法
unordered_map是C++标准库中的一个关联式容器,用于存储键值对。它允许通过键快速索引到对应的值。unordered_map的方法包括:
1. 构造函数:可以使用不同的格式创建unordered_map对象,例如使用初始化列表创建unordered_map,如引用[1]中的示例所示。
2. 容量函数:可以使用empty()函数检测unordered_map是否为空,使用size()函数获取unordered_map中有效元素的个数。
3. 迭代器函数:可以使用begin()函数返回unordered_map中第一个元素的迭代器,使用end()函数返回最后一个元素的下一个位置的迭代器。还可以使用cbegin()和cend()函数返回const迭代器。
4. 元素访问函数:可以使用operator[]函数通过键直接访问对应的值。如果键不存在,operator[]函数会插入一个新的键值对,并返回一个默认值。
除了上述方法之外,C++标准库还提供了一些非成员函数,用于unordered_map,如std::swap()函数用于交换两个unordered_map容器的内容,std::allocator_traits用于操作unordered_map的分配器,std::hash用于提供哈希函数的特化,std::swap用于为unordered_map提供swap()函数的特化等。这些函数的详细信息和用法可以在C++文档中找到,如引用[2]所述。
总之,unordered_map是一个用于存储键值对的关联式容器,提供了多种方法来操作和访问容器中的元素。
C++ unordered_map头文件
C++标准库中的unordered_map是一个关联容器,它提供了一种将键映射到值的方法。与map不同,unordered_map使用哈希表来实现,因此它的查找和插入操作的平均时间复杂度为O(1)。要使用unordered_map,需要包含头文件<unordered_map>。可以使用以下语法定义一个unordered_map对象:
```
std::unordered_map<key_type, value_type> unordered_map_name;
```
其中,key_type是键的数据类型,value_type是值的数据类型,unordered_map_name是unordered_map对象的名称。可以使用以下语法向unordered_map中插入元素:
```
unordered_map_name[key] = value;
```
其中,key是要插入的键,value是要插入的值。可以使用以下语法访问unordered_map中的元素:
```
unordered_map_name[key]
```
其中,key是要访问的元素的键。如果该键存在,则返回对应的值;否则,将插入一个新元素,并返回一个默认值。可以使用以下语法从unordered_map中删除元素:
```
unordered_map_name.erase(key);
```
其中,key是要删除的元素的键。如果该键存在,则删除对应的元素;否则,不执行任何操作。需要注意的是,unordered_map中的元素是无序的,因此不能使用下标运算符[]来访问元素的顺序。