Uso de la función set::find STL en Visual C++

En este artículo se muestra cómo usar la set::find función Biblioteca de plantillas estándar (STL) en Visual C++.

Versión original del producto:   Visual C++
Número de KB original:   158576

Encabezado obligatorio

<set>

Prototipo

template<class _K, class _Pr, class _A>
class set
{
    public:
    // Function 1:

    const_iterator find(const _K& _Kv) const;
}

Nota

Es posible que los nombres de clase o parámetro del prototipo no coincidan con la versión del archivo de encabezado. Algunas se han modificado para mejorar la legibilidad.

Descripción de la función set::find

La find función se usa para buscar un elemento en una secuencia controlada. Devuelve un iterador al primer elemento de la secuencia controlada cuya clave de ordenación coincide con su parámetro. Si no existe ningún elemento de este tipo, el iterador devuelto es igual a end().

Código de ejemplo

Nota

En Visual C++ .NET y En Visual C++, /EHsc se establece de forma predeterminada y es equivalente a /GX.

//////////////////////////////////////////////////////////////////////
// Compile options needed: -GX
// SetFind.cpp:
//      Illustrates how to use the find function to get an iterator
//      that points to the first element in the controlled sequence
//      that has a particular sort key.
// Functions:
//    find         Returns an iterator that points to the first element
//                 in the controlled sequence that has the same sort key
//                 as the value passed to the find function. If no such
//                 element exists, the iterator equals end().
// Copyright (c) 1996 Microsoft Corporation. All rights reserved.
//////////////////////////////////////////////////////////////////////

#pragma warning(disable:4786)
#include <set>
#include <iostream>
#if _MSC_VER > 1020   // if VC++ version is > 4.2
   using namespace std;  // std c++ libs implemented in std
#endif
typedef set<int,less<int>,allocator<int> > SET_INT;

void truefalse(int x)
{
  cout << (x?"True":"False") << endl;
}
void main()
{
  SET_INT s1;
  cout << "s1.insert(5)" << endl;
  s1.insert(5);
  cout << "s1.insert(8)" << endl;
  s1.insert(8);
  cout << "s1.insert(12)" << endl;
  s1.insert(12);

  SET_INT::iterator it;
  cout << "it=find(8)" << endl;
  it=s1.find(8);
  cout << "it!=s1.end() returned ";
  truefalse(it!=s1.end());  //  True

  cout << "it=find(6)" << endl;
  it=s1.find(6);
  cout << "it!=s1.end() returned ";
  truefalse(it!=s1.end());  // False
}

Salida del programa

s1.insert(5)
s1.insert(8)
s1.insert(12)
it=find(8)
it!=s1.end() returned True
it=find(6)
it!=s1.end() returned False