find (STL Samples)
Illustre comment utiliser la fonction de bibliothèque de types (STL) Standard de recherche dans Visual C++.
template<class InputIterator, class T> inline
InputIterator find(
InputIterator First,
InputIterator Last,
const T& Value
)
Notes
[!REMARQUE]
Les noms de classes/paramètre dans le prototype ne correspondent pas à la version du fichier d'en-tête.certains ont été modifiés pour améliorer la lisibilité.
L'algorithme de recherche place le premier élément de la plage [First, Last) que des correspondances Value et retourne que l'itérateur est positionné au premier élément correspondant, ou Last s'il n'existe aucun élément.
Exemple
// 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();
}
Sortie
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
Configuration requise
en-tête : <algorithm>