CHAPTER9-2.cpp
上传用户:fjc899
上传日期:2007-07-03
资源大小:187k
文件大小:2k
- //文件名:CHAPTER9-2.cpp
- #include <set>
- #include <iostream>
- #if _MSC_VER > 1020 // if VC++ version is > 4.2
- using namespace std; // std c++ libs implemented in std
- #endif
- int main( )
- {
- multiset <int>::iterator ms1_Iter, ms2_Iter, ms3_Iter;
- multiset <int>::iterator ms4_Iter, ms5_Iter, ms6_Iter;
- // Create an empty multiset ms0 of key type integer
- multiset <int> ms0;
- // Create an empty multiset ms1 with the key comparison
- // function of less than, then insert 4 elements
- multiset <int, less<int> > ms1;
- ms1.insert( 10 );
- ms1.insert( 20 );
- ms1.insert( 20 );
- ms1.insert( 40 );
- // Create an empty multiset ms2 with the key comparison
- // function of geater than, then insert 2 elements
- multiset <int, greater<int> > ms2;
- ms2.insert( 10 );
- ms2.insert( 20 );
- // Create a multiset ms3 with the
- // allocator of multiset ms1
- multiset <int>::allocator_type ms1_Alloc;
- ms1_Alloc = ms1.get_allocator( );
- multiset <int> ms3( less<int>( ), ms1_Alloc );
- ms3.insert( 30 );
- // Create a copy, multiset ms4, of multiset ms1
- multiset <int> ms4( ms1 );
- // Create a multiset ms5 by copying the range ms1[_First, _Last)
- multiset <int>::const_iterator ms1_bcIter, ms1_ecIter;
- ms1_bcIter = ms1.begin( );
- ms1_ecIter = ms1.begin( );
- ms1_ecIter++;
- ms1_ecIter++;
- // multiset <int> ms5( ms1_bcIter, ms1_ecIter );
- // Create a multiset ms6 by copying the range ms4[_First, _Last)
- // and with the allocator of multiset ms2
- multiset <int>::allocator_type ms2_Alloc;
- ms2_Alloc = ms2.get_allocator( );
- //multiset <int> ms6( ms4.begin( ), ++ms4.begin( ), less<int>( ), ms2_Alloc );
- cout << "ms1 =";
- for ( ms1_Iter = ms1.begin( ); ms1_Iter != ms1.end( ); ms1_Iter++ )
- cout << " " << *ms1_Iter;
- cout << endl;
- cout << "ms2 = " << *ms2.begin( ) << " " << *++ms2.begin( )
- << endl;
- cout << "ms3 =";
- for ( ms3_Iter = ms3.begin( ); ms3_Iter != ms3.end( ); ms3_Iter++ )
- cout << " " << *ms3_Iter;
- cout << endl;
- cout << "ms4 =";
- for ( ms4_Iter = ms4.begin( ); ms4_Iter != ms4.end( ); ms4_Iter++ )
- cout << " " << *ms4_Iter;
- cout << endl;
- /* cout << "ms5 =";
- for ( ms5_Iter = ms5.begin( ); ms5_Iter != ms5.end( ); ms5_Iter++ )
- cout << " " << *ms5_Iter;
- cout << endl;
- cout << "ms6 =";
- for ( ms6_Iter = ms6.begin( ); ms6_Iter != ms6.end( ); ms6_Iter++ )
- cout << " " << *ms6_Iter;
- cout << endl;*/
- }