CHAPTER10-8.cpp
上传用户:fjc899
上传日期:2007-07-03
资源大小:187k
文件大小:1k
源码类别:

STL

开发平台:

C/C++

  1. //文件名:CHAPTER10-8.cpp
  2. #include <map>
  3. #include <iostream>
  4. #if _MSC_VER > 1020   // if VC++ version is > 4.2
  5.    using namespace std;  // std c++ libs implemented in std
  6. #endif
  7. void main( )
  8. {
  9.    multimap <int, int> m1;
  10.    int i;
  11.    multimap <int, int> :: iterator m1_Iter;
  12.    multimap <int, int> :: reverse_iterator m1_rIter;
  13.    multimap <int, int> :: const_reverse_iterator m1_crIter;
  14.    typedef pair <int, int> Int_Pair;
  15.    m1.insert ( Int_Pair ( 1, 10 ) );
  16.    m1.insert ( Int_Pair ( 2, 20 ) );
  17.    m1.insert ( Int_Pair ( 3, 30 ) );
  18.    m1_rIter = m1.rbegin( );
  19.    cout << "The first element of the reversed multimap m1 is "
  20.         << m1_rIter -> first << "." << endl;
  21.    // begin can be used to start an iteration 
  22.    // throught a multimap in a forward order
  23.    cout << "The multimap is: ";
  24.    for ( m1_Iter = m1.begin( ) ; m1_Iter != m1.end( ); m1_Iter++)
  25.       cout << m1_Iter -> first << " ";
  26.    cout << "." << endl;
  27.    // rbegin can be used to start an iteration 
  28.    // throught a multimap in a reverse order
  29.    cout << "The reversed multimap is: ";
  30.    for ( m1_rIter = m1.rbegin( ) ; m1_rIter != m1.rend( ); m1_rIter++)
  31.       cout << m1_rIter -> first << " ";
  32.       cout << "." << endl;
  33.    // A multimap element can be erased by dereferencing its key 
  34.    m1_rIter = m1.rbegin( );
  35.    m1.erase ( m1_rIter -> first );
  36.    m1_rIter = m1.rbegin( );
  37.    cout << "After the erasure, the first element "
  38.         << "in the reversed multimap is "<< m1_rIter -> first << "." << endl;
  39. }