可变序列算法

#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;
}

 

posted @ 2025-03-21 19:26  hanxuyao  阅读(10)  评论(0)    收藏  举报