C++ Tutorial/set multiset/multiset equal range

Материал из C\C++ эксперт
Версия от 13:29, 25 мая 2010; Admin (обсуждение | вклад) (1 версия: Импорт контента...)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Use equal_range to determine lower and upper bound of a value in int Multiset

<source lang="cpp">#include <iostream> using std::cout; using std::endl;

  1. include <set> // multiset class-template definition
  2. include <algorithm> // copy algorithm
  3. include <iterator> // ostream_iterator

int main() {

  int a[ 10 ] = { 7, 22, 9, 1, 18, 30, 100, 22, 85, 13 };
  std::multiset< int, std::less< int > > intMultiset;
  std::ostream_iterator< int > output( cout, " " );
  // insert elements of array a into intMultiset
  intMultiset.insert( a, a + 10 );
  cout << "\nAfter insert, intMultiset contains:\n";
  std::copy( intMultiset.begin(), intMultiset.end(), output );
  // p represents pair of const_iterators
  std::pair<std::multiset< int, std::less< int > >::const_iterator,
            std::multiset< int, std::less< int > >::const_iterator > p;
  //
  p = intMultiset.equal_range( 22 );
  cout << "\n\nequal_range of 22:" << "\n   Lower bound: "
     << *( p.first ) << "\n   Upper bound: " << *( p.second );
  cout << endl;
  return 0;

}</source>

After insert, intMultiset contains:
1 7 9 13 18 22 22 30 85 100
equal_range of 22:
   Lower bound: 22
   Upper bound: 30