stl(21)内置算法copy replace replace_if swap
1.copy的用法
copy用于将容器内指定范围的元素拷贝到另一容器 #include <algorithm>
#include <iostream>
#include <vector>
#include <algorithm>
int main(){
std::vector<int> vec0;
for(int i = 0;i<10;i++){
vec0.push_back(i);
}
std::vector<int> vec1;
vec1.resize(10);
std::copy(vec0.begin(),vec0.end(),vec1.begin());
std::for_each(vec1.begin(),vec1.end(),[](int i ){std::cout<<i<<std::endl;});
return 0;
}
2.replace
replace用于将容器中指定范围内的旧元素替换为新元素, #include <algorithm>
std::vector<int> vec0;
for(int i = 0;i<10;i++){
vec0.push_back(i);
}
std::replace(vec0.begin(),vec0.end(),3,300);
std::for_each(vec0.begin(),vec0.end(),[](int i ){std::cout<<i<<std::endl;});
3.replace_if的用法
replace_if用于按照指定的条件将容器中满足条件的旧元素替换为指定的新元素
std::vector<int> vec0;
for(int i = 0;i<10;i++){
vec0.push_back(i);
}
std::replace_if(vec0.begin(),vec0.end(),[](int i){return i>3;},3000);
std::for_each(vec0.begin(),vec0.end(),[](int i){std::cout<<i<<std::endl;});
3.swap的用法
swap用于交换两个容器中的所有元素,#include <algorithm>
std::vector<int> vec0;
for(int i = 0;i<10;i++){
vec0.push_back(i);
}
std::vector<int> vec2(5,10);
std::swap(vec0,vec2);
std::for_each(vec2.begin(),vec2.end(),[](int i ){std::cout<<i<<std::endl;});