你好假设有5个元素的向量
vector<int> V;
for (int i=0;i<5;i++){
v.push_back(i);
}
Run Code Online (Sandbox Code Playgroud)
现在我如何使用find if和erase来擦除向量中大于2的值?请你建议我准备的示例代码......但我不确定.谢谢
您可以使用擦除remove惯用法使用std::remove_if和合适的仿函数.例如
V.erase(std::remove_if(std::begin(V), std::end(V),
[](int i){ return i > 2; } ),
std::end(V) );
Run Code Online (Sandbox Code Playgroud)
如果你坚持使用pre-C++ 11编译器,那么
bool func(int i) { return i > 2; }
V.erase(std::remove_if(V.begin(), V.end(), func), V.end());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
163 次 |
| 最近记录: |