Share via


find (STL Samples)

Muestra cómo utilizar la función de biblioteca de (STL) plantillas estándar de búsqueda en Visual C++.

template<class InputIterator, class T> inline 
   InputIterator find(
      InputIterator First,
      InputIterator Last,
      const T& Value
   )

Comentarios

[!NOTA]

La clase y los nombres de parámetro en el prototipo no coincide con la versión del archivo de encabezado.Algunos se han modificado para mejorar la legibilidad.

El algoritmo de búsqueda localiza el primer elemento del intervalo [First, Last) que coincida con Value y devuelve el iterador situado en el primer elemento correspondiente, o Last si no existe ese elemento.

Ejemplo

// 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

Requisitos

encabezado: <algoritmo>

Vea también

Conceptos

Ejemplos de biblioteca de plantillas estándar