可变序列算法
#include<iostream> #include<vector> #include<algorithm> using namespace std; bool greater3(int a){ return a>3; } void shuchuv1(vector<int> v){ vector<int>::iterator it; cout<<"v1:"; for(it=v.begin();it!=v.end();++it){ cout<<" "<<*it; } cout<<endl; } void shuchuv2(vector<int> v){ vector<int>::iterator it; cout<<"v2:"; for(it=v.begin();it!=v.end();++it){ cout<<" "<<*it; } cout<<endl; } int main(){ vector<int> v1,v2; int arr[]={1,2,3,4,5,6,7,8}; vector<int> test(arr,arr+sizeof(arr)/sizeof(int)); v1.insert(v1.begin(),test.begin(),test.end()); v2.push_back(9); v2.push_back(10); //重新设置容器大小 v2.resize(11); //将v1前4个元素拷贝到v2前2个元素之后 copy(v1.begin(),v1.begin()+4,v2.begin()+2); //将v1第5,6个元素拷贝到v2容器之前 copy_backward(v1.begin()+4,v1.begin()+6,v2.end()); shuchuv2(v2); //交换2个容器元素,2个容器类型相同 swap(v1,v2); shuchuv2(v2); //将v1前2个元素与v2前2个互换 swap_ranges(v1.begin(),v1.begin()+2,v2.begin()); shuchuv2(v2); shuchuv1(v1); //填充 fill(v1.begin(),v1.begin()+2,-1); shuchuv1(v1); fill_n(v1.begin()+6,2,12); shuchuv1(v1); //替换 generate(v1.begin()+8,v1.begin()+10,rand); shuchuv1(v1); replace(v1.begin(),v1.end(),-1,5); replace_if(v1.begin(),v1.end(),greater3,99); shuchuv1(v1); //删除 remove(v1.begin(),v1.end(),0); remove_if(v1.begin(),v1.end(),greater3); shuchuv1(v1); return 0; }