在remove_if中计算删除(c ++ STL)

use*_*356 0 c++ stl remove-if

有没有办法计算STL中remove_if函数的删除次数?

具体来说,我向前传递并返回每个向量的向量迭代器,并将lambda作为第三个参数作为remove_if的比较值,以确定是否应根据向量中的值删除向量.我想知道是否有办法知道之后remove_if删除的向量数量.

另外,作为一个附带问题:我动态地声明这些向量,所以我不确定在这些上调用remove_if是不好的做法.

小智 5

在remove_if之前和之后计算元素数.

auto old_size = list.size();
auto new_end = std::remove_if(list.begin(), list.end(), ...);
auto new_size = std::distance(list.begin(), new_end);
auto deletions = old_size - new_size;
Run Code Online (Sandbox Code Playgroud)