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

STL

开发平台:

C/C++

  1. //文件名:CHAPTER9-19.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.    set <int> s1, s2, s3;
  10.    set <int> :: iterator pIter, Iter1, Iter2;
  11.    int i, n;
  12.    for ( i = 1 ; i < 5 ; i++ ) { s1.insert ( i );  s2.insert ( i * i ); s3.insert ( i - 1 ); }
  13.    // The 1st member function removes an element at a given position
  14.    Iter1 = ++s1.begin( );
  15.    s1.erase( Iter1 );
  16.    cout << "After the 2nd element is deleted, the set s1 is:" ;
  17.    for ( pIter = s1.begin( ) ; pIter != s1.end( ) ; pIter++ ) cout << " " << *pIter;
  18.    cout << "." << endl;
  19.    // The 2nd member function removes elements
  20.    // in the range [_First, _Last)
  21.    Iter1 = ++s2.begin( );
  22.    Iter2 = --s2.end( );
  23.    s2.erase( Iter1, Iter2 );
  24.    cout << "After the middle two elements are deleted, "<< "the set s2 is:" ;
  25.    for ( pIter = s2.begin( ) ; pIter != s2.end( ) ; pIter++ ) cout << " " << *pIter;
  26.    cout << "." << endl;
  27.    // The 3rd member function removes elements with a given _Key
  28.    n = s3.erase( 2 );
  29.    cout << "After the element with a key of 2 is deleted, "<< "the set s3 is:" ;
  30.    for ( pIter = s3.begin( ) ; pIter != s3.end( ) ; pIter++ ) cout << " " << *pIter;
  31.    cout << "." << endl;
  32.    // The 3rd member function returns the number of elements removed
  33.    cout << "The number of elements removed from s3 is: "<< n << "." << endl;
  34.    // The dereferenced iterator can also be used to specify a key
  35.    Iter1 = ++s3.begin( );
  36.    s3.erase( Iter1 );
  37.    cout << "After another element (unique for set) with a key"<< endl;
  38.    cout  << "equal to that of the 2nd element is deleted, "<< "the set s3 is:" ;
  39.    for ( pIter = s3.begin( ) ; pIter != s3.end( ) ; pIter++ ) cout << " " << *pIter;
  40.    cout << "." << endl;
  41. }