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

STL

开发平台:

C/C++

  1. //文件名:CHAPTER10-1.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. int main( )
  8. {
  9.    typedef pair <int, int> Int_Pair;
  10.    map <int, int>::iterator m1_Iter, m3_Iter, m4_Iter, m5_Iter, m6_Iter;
  11.    map <int, int, greater<int> >::iterator m2_Iter;
  12.    // 创建一个空的map变量m0,类型为整数
  13.    map <int, int> m0;
  14.    // 创建带有谓词的一个空的map变量m1,谓词为小于less than
  15.    map <int, int, less<int> > m1;
  16. //进行元素插入
  17.    m1.insert( Int_Pair( 1, 10 ) );
  18.    m1.insert( Int_Pair( 2, 20 ) );
  19.    m1.insert( Int_Pair( 3, 30 ) );
  20.    m1.insert( Int_Pair( 4, 40 ) );
  21.    //创建带有谓词的一个空的map变量m1,谓词为大于greater than
  22.    map <int, int, greater<int> > m2;
  23.    m2.insert( Int_Pair( 1, 10 ) );
  24.    m2.insert( Int_Pair( 2, 20 ) );
  25.    // 利用m1的内存分配器创建一个map 变量m3 
  26.    map <int, int>::allocator_type m1_Alloc;
  27.    m1_Alloc = m1.get_allocator( );
  28.    map <int, int> m3( less<int>( ), m1_Alloc );
  29.    m3.insert( Int_Pair( 3, 30 ) );
  30.    // 根据m1创建一个拷贝型map变量m4
  31.    map <int, int> m4( m1 );
  32.    //根据m1[_First, _Last]创建一个拷贝型map变量m5
  33.    map <int, int>::const_iterator m1_bcIter, m1_ecIter;
  34.    m1_bcIter = m1.begin( );
  35.    m1_ecIter = m1.begin( );
  36.    m1_ecIter++;
  37.    m1_ecIter++;
  38.    //p <int, int> m5(m1_bcIter, m1_ecIter);
  39.    map <int, int> m5;
  40.    m5.insert( Int_Pair( 1, 10 ) );
  41.    m5.insert( Int_Pair( 2, 20 ) );
  42.    //根据m4[_First, _Last]创建一个拷贝型map变量m6,并且其内存分配器为m2  
  43.    map <int, int>::allocator_type m2_Alloc;
  44.    m2_Alloc = m2.get_allocator( );
  45.    //map <int, int> m6( m4.begin( ), ++m4.begin( ), less<int>( ), m2_Alloc);
  46.    map <int, int> m6;
  47.    m6.insert( Int_Pair( 2, 20 ) );
  48.    m6.insert( Int_Pair( 1, 10 ) );
  49.    cout << "m1 =";
  50.    for ( m1_Iter = m1.begin( ); m1_Iter != m1.end( ); m1_Iter++ )
  51.       cout << " " << m1_Iter -> second;
  52.    cout << endl;
  53.    cout << "m2 =";
  54.    for ( m2_Iter = m2.begin( ); m2_Iter != m2.end( ); m2_Iter++ )
  55.       cout << " " << m2_Iter -> second;
  56.    cout << endl;
  57.    cout << "m3 =";
  58.    for ( m3_Iter = m3.begin( ); m3_Iter != m3.end( ); m3_Iter++ )
  59.       cout << " " << m3_Iter -> second;
  60.    cout << endl;
  61.    cout << "m4 =";
  62.    for ( m4_Iter = m4.begin( ); m4_Iter != m4.end( ); m4_Iter++ )
  63.       cout << " " << m4_Iter -> second;
  64.    cout << endl;
  65.    cout << "m5 =";
  66.    for ( m5_Iter = m5.begin( ); m5_Iter != m5.end( ); m5_Iter++ )
  67.       cout << " " << m5_Iter -> second;
  68.    cout << endl;
  69.    cout << "m6 =";
  70.    for ( m6_Iter = m6.begin( ); m6_Iter != m6.end( ); m6_Iter++ )
  71.       cout << " " << m6_Iter -> second;
  72.    cout << endl;
  73. }