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

STL

开发平台:

C/C++

  1. //文件名:CHAPTER11-3.cpp
  2. #include <vector>
  3. #include <algorithm>
  4. #include <iostream>
  5. // Return whether second element is twice the first
  6. bool twice ( int elem1, int elem2 )
  7. {   return elem1 * 2 == elem2;}
  8. int main( )
  9. {
  10.    using namespace std;
  11.    vector <int> v1, v2, v3;
  12.    vector <int>::iterator Iter1, Iter2, Iter3;
  13.    int i;
  14.    for ( i = 0 ; i <= 5 ; i++ ){v1.push_back( 5 * i );}
  15.    int ii;
  16.    for ( ii = 0 ; ii <= 5 ; ii++ ) {v2.push_back( 5 * ii );}
  17.    int iii;
  18.    for ( iii = 0 ; iii <= 5 ; iii++ ) {v3.push_back( 10 * iii );}
  19.    cout << "v1 = ( " ;
  20.    for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ ) cout << *Iter1 << " ";
  21.    cout << ")" << endl<< "v2 = ( " ;
  22.    for ( Iter2 = v2.begin( ) ; Iter2 != v2.end( ) ; Iter2++ ) cout << *Iter2 << " ";
  23.    cout << ")" << endl;
  24.    cout << "v3 = ( " ;
  25.    for ( Iter3 = v3.begin( ) ; Iter3 != v3.end( ) ; Iter3++ ) cout << *Iter3 << " ";
  26.    cout << ")" << endl;
  27.    // Testing v1 and v2 for equality under identity
  28.    bool b;
  29.    b = equal( v1.begin( ), v1.end( ), v2.begin( ) );
  30.    if ( b ) cout << "The vectors v1 and v2 are equal under equality."<< endl;
  31.    else cout << "The vectors v1 and v2 are not equal under equality."<< endl;
  32.    // Testing v1 and v3 for equality under identity
  33.    bool c;
  34.    c = equal( v1.begin( ), v1.end( ), v3.begin( ) );
  35.    if ( c ) cout << "The vectors v1 and v3 are equal under equality."<< endl;
  36.    else cout << "The vectors v1 and v3 are not equal under equality."<< endl;
  37.    // Testing v1 and v3 for equality under twice
  38.    bool d;
  39.    d = equal( v1.begin( ), v1.end( ), v3.begin( ), twice );
  40.    if ( d ) cout << "The vectors v1 and v3 are equal under twice."<< endl;
  41.    else cout << "The vectors v1 and v3 are not equal under twice."<< endl;
  42. }