使用类属性算法accumulate和multiplies计算连乘积示例如下:
#include <iostream> #include <cassert> #include <algorithm> #include <list> #include <iterator> using namespace std; int main() { int a[10]={12,3,25,7,11,213,7,123,29,-31}; //int *ptr=find(&a[0],&a[10],7); //assert (*ptr==7 && *(ptr+1)==11); list<int> list1(&a[0],&a[10]); list<int>::iterator i=find(list1.begin(),list1.end(),7); assert (*i==7 && *(++i)==11); cout<<"Type some characters,including an 'x' followed\n"<<"by at least one nonwhite-space character: "<<flush; istream_iterator<char> in(cin); istream_iterator<char> eos; find(in,eos,'x'); cout<<"The first nonwhite-space character following\n"<<"the first 'x' was '"<<*(++in)<<"'."<<endl; return 0; } dongjichao@dongjichao:~/c$ cat ex02-14.cpp #include <iostream> #include <vector> #include <cassert> #include <numeric> #include <functional> using namespace std; int main() { cout<<"Using generic accumulate algorithm to compute a product."<<endl; int x[5]={2,3,5,7,11}; vector<int> vector1(&x[0],&x[5]); int product=accumulate(vector1.begin(),vector1.end(),1,multiplies<int>()); assert (product==2310); cout<<" --- Ok."<<endl; return 0; }