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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章