Compartir a través de


Usar 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 necesario

<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. Algunos 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 este elemento, 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