c++ find函数用法
时间: 2023-09-24 17:03:30 浏览: 261
C++中的find函数用于在一个容器中查找指定元素的位置。其基本语法如下:
```c++
iterator find(iterator first, iterator last, const T& value);
```
其中,`first`和`last`分别是表示容器中查找范围的迭代器,`value`则是待查找的元素。该函数会返回一个指向第一个匹配元素的迭代器,如果找不到匹配元素,则返回`last`。
例如,可以使用以下代码在vector容器中查找元素5的位置:
```c++
std::vector<int> vec = {1, 2, 3, 4, 5};
auto it = std::find(vec.begin(), vec.end(), 5);
if (it != vec.end()) {
std::cout << "Found element at position: " << std::distance(vec.begin(), it) << std::endl;
} else {
std::cout << "Element not found" << std::endl;
}
```
输出结果为:
```
Found element at position: 4
```
需要注意的是,`find`函数只适用于支持随机访问的容器,例如vector、deque、array等,对于其他容器,如list、set、map等,可以使用成员函数`find`来进行查找。
相关问题
c++中find函数用法
在C++中,`std::find`是算法库中的一个成员函数,它用于在一个已排序的范围(如数组、容器等)中查找指定元素第一次出现的位置。`std::find`通常配合`std::begin`和`std::end`一起使用,这两个函数分别返回容器的起始迭代器和结束迭代器。
基本语法如下:
```cpp
iterator find(const_iterator first, const_iterator last, const key_type& value);
```
- `first` 和 `last` 是待搜索范围的迭代器,表示范围的开始和结束。
- `value` 是要查找的目标值,可以是一个常量引用。
如果找到了目标元素,则返回指向该元素的第一个匹配项的迭代器;如果没有找到,则返回`last`(即范围结束后的下一个位置)。
示例:
```cpp
#include <algorithm>
#include <vector>
std::vector<int> vec = {10, 20, 30, 40, 50};
size_t index = std::find(vec.begin(), vec.end(), 30) - vec.begin(); // 如果30存在,index就是它的索引
if (index != vec.size()) {
std::cout << "Element found at position: " << index << std::endl;
} else {
std::cout << "Element not found" << std::endl;
}
```
c++ find函数
在C++的STL库中,有很多用于字符串操作的函数。其中,find()函数用于查找某个字符或子串在字符串中的位置。 find()函数是全匹配的,也就是说它会查找完整的子串,并返回第一次匹配到的位置。如果找到了匹配的子串,它会返回子串在字符串中的起始位置;如果找不到匹配的子串,它会返回-1。 具体使用方法可以参考以下示例代码:
#include <iostream>
#include <string>
using namespace std;
int main() {
string s1 = "adedef";
string s2 = "dek";
int ans = s1.find(s2); //在s1中查找子串s2
cout << ans << endl;
return 0;
}
在上述代码中,s1.find(s2)的返回值即为子串s2在s1中第一次出现的位置。如果找不到匹配的子串,返回-1。
阅读全文