Freigeben über


hash_set::equal_range

HinweisHinweis

Diese API ist veraltet.Die Alternative ist unordered_set Class.

Gibt ein Paar Iteratoren bzw. auf das erste Element in einem Hashsatz mit einem Schlüssel, die gleich einem angegebenen Schlüssel und dem ersten Element im Hashsatz mit einem Schlüssel ist, die größer ist, als Schlüssel zurück.

pair <const_iterator, const_iterator> equal_range (
   const Key& _Key
) const;
pair <iterator, iterator> equal_range (
   const Key& _Key
);

Parameter

  • _Key
    Der mit dem Sortierschlüssel eines Elements vom hash_set verglichen werden, Argumentschlüssel, das gefunden wird.

Rückgabewert

Ein Paar Iteratoren, wobei das erste lower_bound der Schlüssel und der zweiten ist, ist upper_bound der Schlüssel.

Um auf den ersten Iterator eines Paarfotorezeptors auf der von der - Memberfunktion, verwenden pr zurück.first und den Untergrenzeniterator dereferenzieren, Verwendung * (pr.first).Um auf den zweiten Iterator eines Paars pr auf der von der - Memberfunktion, verwenden pr zurück.second und den Obergrenzeniterator dereferenzieren, Verwendung * (pr.second).

Hinweise

In Visual C++ .NET 2003, sind Member der <hash_map> und <hash_set> Headerdateien nicht mehr im stdnamespace, sondern sind in den stdext Namespace verschoben wurde.Weitere Informationen finden Sie unter Der stdext-Namespace.

Beispiel

// hash_set_equal_range.cpp
// compile with: /EHsc
#include <hash_set>
#include <iostream>

int main( )
{
   using namespace std; 
   using namespace stdext;
   typedef hash_set<int> IntHSet;
   IntHSet hs1;
   hash_set <int> :: const_iterator hs1_RcIter;
   
   hs1.insert( 10 );
   hs1.insert( 20 );
   hs1.insert( 30 );

   pair <IntHSet::const_iterator, IntHSet::const_iterator> p1, p2;
   p1 = hs1.equal_range( 20 );

   cout << "The upper bound of the element with "
        << "a key of 20 in the hash_set hs1 is: "
        << *(p1.second) << "." << endl;

   cout << "The lower bound of the element with "
        << "a key of 20 in the hash_set hs1 is: "
        << *(p1.first) << "." << endl;

   // Compare the upper_bound called directly 
   hs1_RcIter = hs1.upper_bound( 20 );
   cout << "A direct call of upper_bound( 20 ) gives "
        << *hs1_RcIter << "," << endl
        << "matching the 2nd element of the pair"
        << " returned by equal_range( 20 )." << endl;

   p2 = hs1.equal_range( 40 );

   // If no match is found for the key,
   // both elements of the pair return end( )
   if ( ( p2.first == hs1.end( ) ) && ( p2.second == hs1.end( ) ) )
      cout << "The hash_set hs1 doesn't have an element "
           << "with a key greater than or equal to 40." << endl;
   else
      cout << "The element of hash_set hs1 with a key >= 40 is: "
           << *(p1.first) << "." << endl;
}
  
  
  
  

Anforderungen

Header: <hash_set>

Namespace: stdext

Siehe auch

Referenz

hash_set Class

Standardvorlagenbibliothek