unordered_map 中括号
时间: 2023-11-11 09:06:41 浏览: 43
在C++的unordered_map中,中括号[]用于访问和修改哈希表中的元素。使用中括号时,如果键存在,则返回对应的值;如果键不存在,则会自动插入该键,并将值初始化为默认值。下面是一个使用中括号访问和修改unordered_map的例子:
```c++
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_map<std::string, int> myMap = {{"apple", 1}, {"banana", 2}, {"orange", 3}};
// 访问元素
std::cout << "The value of myMap[\"apple\"] is " << myMap["apple"] << std::endl;
// 修改元素
myMap["apple"] = 4;
std::cout << "The value of myMap[\"apple\"] is " << myMap["apple"] << std::endl;
return 0;
}
```
输出结果为:
```
The value of myMap["apple"] is 1
The value of myMap["apple"] is 4
```
相关问题
unordered_map.insert
unordered_map.insert是C++标准库中unordered_map容器的一个成员函数,用于向unordered_map中插入元素。它有多个重载版本,可以插入单个元素或者一组元素。
1. 插入单个元素:
```cpp
unordered_map<Key, T> myMap;
myMap.insert(make_pair(key, value));
```
这里的key是要插入的元素的键,value是对应的值。使用make_pair函数将键和值组合成一个pair对象,然后调用insert函数将该pair对象插入到unordered_map中。
2. 插入一组元素:
```cpp
unordered_map<Key, T> myMap;
myMap.insert({{key1, value1}, {key2, value2}, ...});
```
这里的key1、value1、key2、value2等分别是要插入的元素的键和值。使用花括号初始化列表将多个键值对组合起来,然后调用insert函数将这些键值对插入到unordered_map中。
注意,如果要插入的键已经存在于unordered_map中,则insert函数不会插入新的元素,而是返回一个pair对象,其中的第一个成员指向已存在的元素,第二个成员为false。
未定义标识符unordered_map
unordered_map是一个定义在头文件<unordered_map>中的C++关联容器,它包含键-值对并且键是唯一的。与map不同,unordered_map的内部存储没有特定的顺序,而是根据键的哈希值进行存储。由于计算哈希值的速度很快,所以在unordered_map中查找、插入和删除操作都是常数时间的。你可以通过#include <unordered_map>包含头文件来使用unordered_map。初始化unordered_map可以通过列表的形式进行,例如unordered_map<int, int> u = {{2, 4}, {4, 16}}。如果要插入或修改值,可以直接使用中括号下标的形式,例如u = 9和u = 404。你还可以使用迭代来访问unordered_map中的键值对,例如使用auto关键字和range-based for循环来遍历所有的键值对。更多的操作和用法可以查阅相关文档。还有一个类似的容器叫做map。