stl std::find使用

原型与概述

它与所有的STL算法一样,是一个模板函数,它的原型如下:

#include <algorithm>
template <class InputIterator, class T>
InputIterator find ( InputIterator first, InputIterator last, const T& value );

 

在区间 [first, last) 里查找值为 value 的对象。

参数与返回值

参数:本算法的功能是在区间里查找给定值,所以它的参数无疑是:给定区间和给定值。区间通过两个向前迭代器指出,而值通过一个只读引用给出。原型中的 first 和 last 分别为区间的起始与终点,find 在区间 [first, last) 上查找值与 value 相等的对象。

返回值:如果找到与 value 值相等的对象,则返回指向该对象的迭代器;如果没有找到这样的一个对象,则返回迭代器 last。

示例

本算法简单明了,本可以不用示例,但此处仍提供一个简单示例。本示例在一个整形数组里查找一个指定整数。

#include<algorithm>
#include<iostream>

int main()
{
        int array[5]={1, 3, 5, 7, 9};

        //查找值为 7 的整数对象
        int* iterator=std::find(
                static_cast<int*>(array), //起始迭代器
                static_cast<int*>(array)+5, //迭代器终点
                7 //需要查找的值
                );
               
        //打印出来的结果将是 7
        std::cout << *iterator << std::endl;
       
        return 0
}

 

注意事项

在查找的过程隐含对对象的比较,因此迭代器返回的值类型至少应该与 value 可以进行相等比较,否则程序无法通过编译,并因此而产生许多编译时错误消息。

发布了79 篇原创文章 · 获赞 9 · 访问量 17万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章