STL 算法实践,直接贴代码:
#include<iostream>
#include<vector>
#include<algorithm>
#include<functional>
using namespace std;
int main(){
fill_n(ostream_iterator<float>(cout," "),10,7.7);
cout<<endl;
vector<int>v;
fill_n(back_inserter(v),10,10086);
copy(v.begin(),v.end(),ostream_iterator<int>(cout," "));
cout<<endl;
fill(v.begin(),v.end(),10087);
copy(v.begin(),v.end(),ostream_iterator<int>(cout," "));
cout<<endl;
fill_n(v.begin()+2,8,0);
copy(v.begin(),v.end(),ostream_iterator<int>(cout," "));
cout<<endl;
system("pause");
return 0;
}
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
#include<ctime>
#include<functional>
using namespace std;
int a(1);
int changsheng(){
return a++;
}
int suiji(){
return rand()%100;
}
class GaiBian{
public:
GaiBian(int x):n(x){}
int operator()(){
return n++;
}
private:
int n;
};
int main(){
vector<int>v;
vector<int>vv;
vv.resize(10);
generate_n(back_inserter(v),10,changsheng);
copy(v.begin(),v.end(),ostream_iterator<int>(cout," "));
cout<<endl;
generate(vv.begin(),vv.end(),GaiBian(10077));
for(vector<int>::iterator itera=vv.begin();itera!=vv.end();++itera){
cout<<*itera<<" ";
}
cout<<endl;
srand(unsigned(time(NULL)));
generate(vv.begin(),vv.end(),suiji);
copy(vv.begin(),vv.end(),ostream_iterator<int>(cout," "));
cout<<endl;
system("pause");
return 0;
}