std::map的find函数返回什么
时间: 2024-01-19 12:17:58 浏览: 138
std::map的find函数返回一个迭代器,指向map中与给定键匹配的元素。如果找到了匹配的元素,则返回指向该元素的迭代器;如果没有找到匹配的元素,则返回指向map末尾的迭代器。
以下是一个示例代码:
```cpp
#include <iostream>
#include <map>
int main() {
std::map<int, std::string> mapS;
mapS[1] = "one";
mapS[2] = "two";
mapS[3] = "three";
std::map<int, std::string>::iterator it = mapS.find(2);
if (it != mapS.end()) {
std::cout << "Found element with key 2: " << it->second << std::endl;
} else {
std::cout << "Element with key 2 not found" << std::endl;
}
return 0;
}
```
输出结果:
```
Found element with key 2: two
```
相关问题
std::map的find函数
`std::map` 的 `find` 函数用于在 `map` 容器中查找指定键所对应的迭代器。其函数原型如下:
```c++
iterator find( const Key& key );
const_iterator find( const Key& key ) const;
```
其中,`key` 为要查找的键值。
如果在 `map` 容器中找到了给定的键值,则返回指向该键值所对应元素的迭代器;否则,返回指向 `map` 容器末尾元素的迭代器,即 `map::end()`。
下面是一个使用 `std::map` 的 `find` 函数的示例:
```c++
#include <iostream>
#include <map>
#include <string>
int main() {
std::map<std::string, int> myMap = {
{"apple", 1},
{"banana", 2},
{"orange", 3}
};
auto it = myMap.find("banana");
if (it != myMap.end()) {
std::cout << "Found " << it->first << " with value " << it->second << std::endl;
} else {
std::cout << "Not found" << std::endl;
}
return 0;
}
```
在上面的示例中,我们首先定义了一个 `std::map` 容器 `myMap`,它存储了若干个键值对。然后,我们使用 `find` 函数查找键为 "banana" 的元素,并将其返回的迭代器存储在变量 `it` 中。最后,我们判断 `it` 是否等于 `myMap.end()`,如果不是,则输出找到的元素的键和值。
std::unordered_map find
std::unordered_map是C++标准库中的一个关联容器,它提供了一种键值对的映射关系。其中的find函数用于在unordered_map中查找指定的键,并返回一个指向该键值对的迭代器。
使用find函数的一般语法如下:
```cpp
auto iter = unordered_map_name.find(key);
```
其中,unordered_map_name是要进行查找的unordered_map对象的名称,key是要查找的键值。
如果找到了指定的键值对,则find函数返回一个指向该键值对的迭代器;如果未找到,则返回unordered_map的end迭代器。
以下是一个示例代码:
```cpp
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_map<int, std::string> myMap = {{1, "apple"}, {2, "banana"}, {3, "orange"}};
auto iter = myMap.find(2);
if (iter != myMap.end()) {
std::cout << "Key found! Value: " << iter->second << std::endl;
} else {
std::cout << "Key not found!" << std::endl;
}
return 0;
}
```
输出结果为:
```
Key found! Value: banana
```
阅读全文