问题:如何删除满足条件的所有元素。
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,这两容器只需要指定容器,不需要指定容器范围。