Freigeben über


multiset::equal_range

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

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 Multiset verglichen werden, Argumentschlüssel, das gefunden wird.

Rückgabewert

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

Um auf den ersten Iterator eines Paars pr 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).

Beispiel

// multiset_equal_range.cpp
// compile with: /EHsc
#include <set>
#include <iostream>

int main( )
{
   using namespace std;    
   typedef multiset<int, less<int> > IntSet;
   IntSet ms1;
   multiset <int> :: const_iterator ms1_RcIter;
   
   ms1.insert( 10 );
   ms1.insert( 20 );
   ms1.insert( 30 );

   pair <IntSet::const_iterator, IntSet::const_iterator> p1, p2;
   p1 = ms1.equal_range( 20 );

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

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

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

   p2 = ms1.equal_range( 40 );

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

Anforderungen

Header: <set>

Namespace: std

Siehe auch

Referenz

multiset Class

Standardvorlagenbibliothek