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

STL

开发平台:

C/C++

  1. //文件名:CHAPTER9-2.cpp
  2. #include <set>
  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.    multiset <int>::iterator ms1_Iter, ms2_Iter, ms3_Iter;
  10.    multiset <int>::iterator ms4_Iter, ms5_Iter, ms6_Iter;
  11.    // Create an empty multiset ms0 of key type integer
  12.    multiset <int> ms0;
  13.    // Create an empty multiset ms1 with the key comparison
  14.    // function of less than, then insert 4 elements
  15.    multiset <int, less<int> > ms1;
  16.    ms1.insert( 10 );
  17.    ms1.insert( 20 );
  18.    ms1.insert( 20 );
  19.    ms1.insert( 40 );
  20.    // Create an empty multiset ms2 with the key comparison
  21.    // function of geater than, then insert 2 elements
  22.    multiset <int, greater<int> > ms2;
  23.    ms2.insert( 10 );
  24.    ms2.insert( 20 );
  25.    // Create a multiset ms3 with the 
  26.    // allocator of multiset ms1
  27.    multiset <int>::allocator_type ms1_Alloc;
  28.    ms1_Alloc = ms1.get_allocator( );
  29.    multiset <int> ms3( less<int>( ), ms1_Alloc );
  30.    ms3.insert( 30 );
  31.    // Create a copy, multiset ms4, of multiset ms1
  32.    multiset <int> ms4( ms1 );
  33.    // Create a multiset ms5 by copying the range ms1[_First, _Last)
  34.    multiset <int>::const_iterator ms1_bcIter, ms1_ecIter;
  35.    ms1_bcIter = ms1.begin( );
  36.    ms1_ecIter = ms1.begin( );
  37.    ms1_ecIter++;
  38.    ms1_ecIter++;
  39. //   multiset <int> ms5( ms1_bcIter, ms1_ecIter );
  40.    // Create a multiset ms6 by copying the range ms4[_First, _Last)
  41.    // and with the allocator of multiset ms2
  42.    multiset <int>::allocator_type ms2_Alloc;
  43.    ms2_Alloc = ms2.get_allocator( );
  44.    //multiset <int> ms6( ms4.begin( ), ++ms4.begin( ), less<int>( ), ms2_Alloc );
  45.    cout << "ms1 =";
  46.    for ( ms1_Iter = ms1.begin( ); ms1_Iter != ms1.end( ); ms1_Iter++ )
  47.       cout << " " << *ms1_Iter;
  48.    cout << endl;
  49.    cout << "ms2 = " << *ms2.begin( ) << " " << *++ms2.begin( )
  50.    << endl;
  51.    cout << "ms3 =";
  52.    for ( ms3_Iter = ms3.begin( ); ms3_Iter != ms3.end( ); ms3_Iter++ )
  53.       cout << " " << *ms3_Iter;
  54.    cout << endl;
  55.    cout << "ms4 =";
  56.    for ( ms4_Iter = ms4.begin( ); ms4_Iter != ms4.end( ); ms4_Iter++ )
  57.       cout << " " << *ms4_Iter;
  58.    cout << endl;
  59. /*   cout << "ms5 =";
  60.    for ( ms5_Iter = ms5.begin( ); ms5_Iter != ms5.end( ); ms5_Iter++ )
  61.       cout << " " << *ms5_Iter;
  62.    cout << endl;
  63.    cout << "ms6 =";
  64.    for ( ms6_Iter = ms6.begin( ); ms6_Iter != ms6.end( ); ms6_Iter++ )
  65.       cout << " " << *ms6_Iter;
  66.    cout << endl;*/
  67. }