问题:如何删除满足条件的所有元素。
erase
#include <iostream>
#include <algorithm>
#include <vector>
int main(){
std::vector<int> vec{1,2,3,1,1,1,1,1};
std::erase(vec,1);
for(int v:vec) std::cout<<v<<" ";
std::cout<<std::endl;
return 0;
}
#include <iostream>
#include <algorithm>
#include <vector>
int main(){
std::string str="a,b,c,d,e,f";
std::erase(str,',');
std::cout<<str<<std::endl;
return 0;
}
erase_if
#include <iostream>
#include <algorithm>
#include <vector>
int main(){
std::vector<int> vec{1,2,3,4,5,6,7,8,9,10};
std::erase_if(vec,[](int v){
return v%2!=0;
});
for(int v:vec) std::cout<<v<<" ";
std::cout<<std::endl;
return 0;
}
注意:
1,这两容器只需要指定容器,不需要指定容器范围。