我正在创建一个 API,用户将调用它来从内部向量中删除项目。他们将传入标准以搜索向量以查找要删除的元素。如果找到并删除了任何元素,我希望我的 API 返回一个布尔值。
我打算使用擦除删除成语来保持简单和高效。我没有看到一种明显的方法来检测项目实际上已被删除?我最好的选择是在删除之前存储向量中的元素数量并比较值吗?
以下是有关此成语的一些(未经测试的)示例代码:
std::vector<int> v = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
boolean removeMultiples(int multiple) {
v.erase( std::remove_if(v.begin(), v.end(), [multiple](int i){return i%multiple == 0;}), v.end() );
// return true if anything was removed
}