unordered_map下标查找返回值
时间: 2023-05-24 08:04:24 浏览: 50
如果使用unordered_map进行下标查找,会返回对应key的value值。如果key不存在,会返回unordered_map的默认值(0或空值,具体取决于value的数据类型)。
例如:
```
unordered_map<string, int> myMap;
myMap["one"] = 1;
myMap["two"] = 2;
int valueOne = myMap["one"];
int valueThree = myMap["three"]; // 不存在的key,返回默认值0
cout << "valueOne: " << valueOne << endl; // 输出1
cout << "valueThree: " << valueThree << endl; // 输出0
```
相关问题
unordered_map find的返回值
unordered_map的find()函数返回一个迭代器,指向查找到的元素。如果在unordered_map中找到了指定的键,则返回指向该键值对的迭代器;否则,返回unordered_map的end()迭代器。
具体来说,find()函数的返回类型是一个迭代器,可以使用auto关键字自动推断类型,或者显式指定为unordered_map的迭代器类型,如unordered_map<Key, T>::iterator。
下面是一个示例,演示了如何使用find()函数并处理其返回值:
```cpp
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_map<std::string, int> umap;
// 插入键值对
umap["apple"] = 5;
umap["banana"] = 2;
umap["orange"] = 8;
// 使用find()查找元素
auto iter = umap.find("banana");
if (iter != umap.end()) {
std::cout << "Found value: " << iter->second << std::endl;
} else {
std::cout << "Key not found!" << std::endl;
}
return 0;
}
```
在这个示例中,我们创建了一个unordered_map对象,并插入了几个键值对。然后,我们使用find()函数来查找键为"banana"的元素。如果找到了该元素,我们打印出它的值;否则,打印出"Key not found!"。输出结果将是:
```
Found value: 2
```
需要注意的是,如果unordered_map中存在多个具有相同键的元素,则find()函数只返回第一个匹配的元素的迭代器。如果需要查找所有匹配的元素,可以结合使用equal_range()函数或使用范围遍历。
unordered_map erase返回值
unordered_map的erase函数是用来删除unordered_map中指定键的元素的。它的返回值是一个迭代器,指向被删除元素之后的位置。如果删除的是最后一个元素,则返回end()迭代器。
例如,假设我们有一个unordered_map<int, string> map,其中包含以下键值对:{1, "apple"}, {2, "banana"}, {3, "orange"}。如果我们调用map.erase(2),则会删除键为2的元素,并返回一个指向键为3的元素的迭代器。
注意,如果要删除的键不存在于unordered_map中,erase函数将不会进行任何操作,并返回end()迭代器。