find (STL Samples)
在 Visual C++ 演示如何使用 查找 标准 (STL)模板库函数。
template<class InputIterator, class T> inline
InputIterator find(
InputIterator First,
InputIterator Last,
const T& Value
)
备注
备注
类/参数名在原型不匹配版本在头文件。修改某些提高可读性。
查找 算法将第一个元素针对的范围 [First, Last) 与 Value 并返回迭代器确定在第一个匹配的元素或 Last ,如果不存在这样的元素。
示例
// find.cpp
// compile with: /EHsc
// Demonstrates using find() on a C++ array, a vector, and an STL array.
#include <algorithm>
#include <iostream>
#include <vector>
#include <array>
using namespace std;
using namespace std::tr1;
void FindInArray()
{
const int ARRAY_SIZE = 8;
int IntArray[ARRAY_SIZE] = { 1, 2, 3, 4, 4, 5, 6, 7 };
int value = 4;
// print contents of IntArray
cout << endl << "array";
for(int i = 0; i < ARRAY_SIZE; i++)
{
cout << " " << IntArray[i];
}
cout << endl;
// Find the first element in the range [first, last)
// that matches value.
int *location = find(IntArray, IntArray + ARRAY_SIZE, value);
//print the matching element if any was found
if (location != IntArray + ARRAY_SIZE) // matching element found
{
cout << "First element that matches " << value
<< " is at location " << location - IntArray << endl;
}
else // no matching element was found
{
cout << "The sequence does not contain any elements"
<< " with value " << value << endl;
}
}
void FindInVector()
{
vector<int> v;
v.push_back( 1 );
v.push_back( 2 );
v.push_back( 3 );
v.push_back( 4 );
v.push_back( 4 );
v.push_back( 5 );
v.push_back( 6 );
v.push_back( 7 );
int value = 4;
// print contents of v
cout << endl << "vector";
for(vector<int>::const_iterator i = v.begin(); i != v.end(); ++i)
{
cout << " " << *i;
}
cout << endl;
// Find the first element in the range [first, last)
// that matches value.
vector<int>::const_iterator location = find(v.begin(), v.end(), value);
//print the matching element if any was found
if (location != v.end()) // matching element found
{
cout << "First element that matches " << value
<< " is at location " << location - v.begin() << endl;
}
else // no matching element was found
{
cout << "The sequence does not contain any elements"
<< " with value " << value << endl;
}
}
void FindInStlArray()
{
const int ARRAY_SIZE = 8;
typedef array<int, ARRAY_SIZE> arraytype;
arraytype a = { 1, 2, 3, 4, 4, 5, 6, 7 };
int value = 4;
// print contents of a
cout << endl << "STL array";
for(arraytype::const_iterator i = a.begin(); i != a.end(); ++i)
{
cout << " " << *i;
}
cout << endl;
// Find the first element in the range [first, last)
// that matches value.
arraytype::const_iterator location = find(a.begin(), a.end(), value);
//print the matching element if any was found
if (location != a.end()) // matching element found
{
cout << "First element that matches " << value
<< " is at location " << location - a.begin() << endl;
}
else // no matching element was found
{
cout << "The sequence does not contain any elements"
<< " with value " << value << endl;
}
}
int main()
{
FindInArray();
FindInVector();
FindInStlArray();
}
Output
array 1 2 3 4 4 5 6 7
First element that matches 4 is at location 3
vector 1 2 3 4 4 5 6 7
First element that matches 4 is at location 3
STL array 1 2 3 4 4 5 6 7
First element that matches 4 is at location 3
要求
**标题:**algorithm