Partager via


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>

Voir aussi

Concepts

Exemples de modèles Standard