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

STL

开发平台:

C/C++

  1. //文件名:CHAPTER11-33.cpp
  2. #include <iostream>
  3. #include <numeric>
  4. #include <functional>
  5. #include <vector>
  6. #include <iterator>
  7. using namespace std;
  8. typedef vector < int > IntegerArray;
  9. typedef ostream_iterator < int, char, char_traits<char> > IntOstreamIt;
  10. void main ()
  11. {
  12.     IntOstreamIt itOstream(cout," ");
  13.     IntegerArray rgIA;
  14.     rgIA.push_back(5661); 
  15.     rgIA.push_back(7456);
  16.     rgIA.push_back(10995);
  17.     rgIA.push_back(17019); 
  18.     rgIA.push_back(24394); 
  19.     rgIA.push_back(30376); 
  20.     rgIA.push_back(35758); 
  21.     copy(rgIA.begin(),rgIA.end(),itOstream);
  22.     cout << endl;
  23.     IntegerArray rgDifferences(7);
  24.     IntegerArray::iterator itDifferences = rgDifferences.begin();
  25.     adjacent_difference(rgIA.begin(),rgIA.end(),itDifferences);
  26.     cout << "The adjacent differences are: ";
  27.     copy(rgDifferences.begin()+1,rgDifferences.end(),itOstream);
  28.     cout << endl;
  29.     IntegerArray rgGT(6);
  30.     IntegerArray::iterator itGT = rgGT.begin();
  31.     adjacent_difference(rgDifferences.begin()+1,rgDifferences.end(),itGT,less<int>());
  32.     cout << "Which adjacent distances are greater:" << endl
  33.          << "(If you have [a,b,c], then you have [1,0] if a>b and b<=c)"<< endl;
  34.     copy(rgGT.begin()+1,rgGT.end(),itOstream);
  35.     cout << endl;
  36. }