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

STL

开发平台:

C/C++

  1. //文件名:CHAPTER11-30.cpp
  2. #pragma warning (disable : 4786)
  3. #include <iostream>
  4. #include <numeric>
  5. #include <functional>
  6. #include <vector>
  7. #include <iterator>
  8. #include <string>
  9. using namespace std;
  10. typedef vector < float > FloatArray;
  11. typedef vector < string > StringArray;
  12. typedef ostream_iterator <float, char, char_traits <char> > FloatOstreamIt;
  13. void main ()
  14. {
  15.     FloatArray rgFA;    // a vector of floats
  16.     FloatOstreamIt OstreamIt(cout," ");
  17.     for (int i=0; i<10; i++) rgFA.push_back(1.0f/(i+1));
  18.     copy(rgFA.begin(),rgFA.end(),OstreamIt);
  19.     cout << endl;
  20.     cout << "The sum of 1 + 1/2 + 1/3 + ... + 1/10 is "<< accumulate(rgFA.begin(),rgFA.end(),0.0f) << endl;
  21.     cout << "The product of 1 * 1/2 * 1/3 * ... * 1/10 is "
  22.          << accumulate(rgFA.begin(),rgFA.end(),1.0f,multiplies<float>())<< endl;
  23.     // Initialize array of strings
  24.     StringArray rgs;
  25.     rgs.push_back("This ");
  26.     rgs.push_back("is ");
  27.     rgs.push_back("one ");
  28.     rgs.push_back("sentence. ");
  29. cout << "The concatenated vector of strings: " << accumulate(rgs.begin(),rgs.end(),string(""));
  30. }