C++STL的非變易算法(Non-mutating algorithms)是一組不破壞操作數據的模板函數,用來對序列數據進行逐個處理、元素查找、子序列搜索、統計和匹配。
find算法用於查找等於某值的元素。它在迭代器區間[first , last)上查找等於value值的元素,如果迭代器iter所指的元素滿足*iter == value ,則返回迭代器iter,未找則返回last。
函數原型:
template<class InputIterator, class Type>
InputIterator find(
InputIterator _First,
InputIterator _Last,
const Type& _Val
);
示例代碼:
/*******************************************************************
* Copyright (C) Jerry Jiang
* File Name : find.cpp
* Author : Jerry Jiang
* Create Time : 2011-9-29 0:03:25
* Mail : [email protected]
* Blog : http://blog.csdn.net/jerryjbiao
* Description : 簡單的程序诠釋C++ STL算法系列之二
* 非變易算法: 查找容器元素find
******************************************************************/
#include <algorithm>
#include <list>
#include <iostream>
using namespace std;
int main()
{
list<int> ilist;
for (size_t i = 0; i < 10; ++i)
{
ilist.push_back(i+1);
}
ilist.push_back(10);
list<int>::iterator iLocation = find(ilist.begin(), ilist.end(), 10);
if (iLocation != ilist.end())
{
cout << "找到元素10" << endl;
}
cout << "前一個元素為:" << *(--iLocation) << endl;
return 0;
}
摘自:Jerry.Jiang的程序人生