Freigeben über


Verwenden der Funktion set::find STL in Visual C++

In diesem Artikel wird die Verwendung der set::find StL-Funktion (Standard Template Library) in Visual C++ veranschaulicht.

Originalproduktversion: Visual C++
Ursprüngliche KB-Nummer: 158576

Erforderlicher Header

<set>

Prototyp

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

    const_iterator find(const _K& _Kv) const;
}

Notiz

Die Klassen-/Parameternamen im Prototyp stimmen möglicherweise nicht mit der Version in der Headerdatei überein. Einige wurden geändert, um die Lesbarkeit zu verbessern.

Beschreibung der Set::find-Funktion

Die find Funktion wird verwendet, um ein Element in einer gesteuerten Sequenz zu finden. Es gibt einen Iterator an das erste Element in der gesteuerten Sequenz zurück, dessen Sortierschlüssel mit seinem Parameter übereinstimmt. Wenn kein solches Element vorhanden ist, ist der zurückgegebene Iterator gleich end().

Beispielcode

Notiz

In Visual C++ .NET und in Visual C++ ist /EHsc standardmäßig festgelegt und entspricht /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
}

Programmausgabe

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