21xrx.com
2024-06-03 06:38:55 Monday
登录
文章检索 我的文章 写文章
C++中find函数的使用方法
2023-06-27 11:08:42 深夜i     --     --
C++ find函数 使用方法

C++中的STL(标准模板库)提供了一个强大的算法库,其中包含了大量的算法函数,可以方便地操作容器和数据结构。其中,find函数是一个非常常用的函数。

find函数的作用是在容器中查找一个元素,并返回这个元素第一次出现的位置。这个函数定义在 头文件中,使用时需要注意要包含这个头文件。

find函数的使用方法一般有两种,第一种是在普通数组中查找元素,第二种是在容器中查找元素。下面分别介绍这两种方法的使用。

对于数组来说,可以使用find函数在其中查找一个元素。其函数原型为:


 const T* find (const T* first, const T* last, const T& val);

 const iterator find (const_iterator first, const_iterator last, const T& val);

其中,first和last表示查找范围的起始点和终止点,这两个参数都是迭代器。val表示要查找的元素的值,可以是任何类型。

例如,我们要查找一个整型数组中是否有数字5,可以这样使用find函数:


int arr[] = 4;

int* p = std::find(arr, arr+5, 5);

if (p != arr+5) 它的位置是:" << p - arr << std::endl;

else

 std::cout << "没找到数字5" << std::endl;

这段代码中,find函数返回的是一个指针,指向第一次出现数字5的位置。如果p指向的位置不等于arr+5,说明找到了数字5,输出它的位置;否则表示没找到。

另外一种使用方法是在容器中查找元素。容器是STL中的重要概念,包含了许多数据结构,如vector、list、set等等。这些容器的共同点是都可以使用迭代器访问它们的元素。

在容器中查找元素的函数原型为:


 iterator find (iterator first, iterator last, const T& val);

 const_iterator find (const_iterator first, const_iterator last, const T& val);

使用方法与数组中的find函数类似,只是输入参数变成了容器的迭代器。

例如,我们要在一个vector 中查找数字5,可以这样使用find函数:


std::vector<int> vec 4;

auto iter = std::find(vec.begin(), vec.end(), 5);

if (iter != vec.end()) {

 std::cout << "找到了数字5,它的位置是:" << iter - vec.begin() << std::endl;

} else

 std::cout << "没找到数字5" << std::endl;

这段代码中,find函数返回的是一个迭代器,指向第一次出现数字5的位置。如果iter不等于vec.end(),说明找到了数字5,输出它的位置;否则表示没找到。

总的来说,find函数是一个非常方便的算法函数,可以用来查找容器或数组中的元素。使用时只需要注意输入参数的类型和范围即可。

  
  
下一篇: C++宏定义

评论区

{{item['qq_nickname']}}
()
回复
回复