例如:
vector<string> strs;
strs.push_back("1");
strs.push_back("2");
strs.push_back("3");
strs.push_back("4");
strs.push_back("3");
//strs.removeAllOccurencesOfValue("3");
我找到了这个例子:
但是有更简单的方法吗?例如使用boost框架?
答案 0 :(得分:4)
有一个非常好的Erase-remove idiom:
#include <algorithm>
strs.erase( std::remove(strs.begin(), strs.end(), std::string("3")), strs.end() );
答案 1 :(得分:1)
Scott Meyers 在他的有效STL中提到Erase-remove idiom:提高标准模板库使用的50种具体方法。这对你的案子来说似乎很完美:
#include <algorithm> // for std::remove
vector<string> strs;
strs.push_back("1");
strs.push_back("2");
strs.push_back("3");
strs.push_back("4");
strs.push_back("3");
strs.erase( std::remove( strs.begin(), strs.end(), "3" ), strs.end() );