[セットトップ]簡単なプログラム解釈C++STLアルゴリズムシリーズの2:find


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;
}

*******************************************************************************************************************************
C++経典書目索引及び資源ダウンロード:http://blog.csdn.net/jerryjbiao/article/details/7358796
********************************************************************************************************************************