我有这个代码:
#include <algorithm>
#include <iostream>
#include <list>
using namespace std;
struct P
{
bool operator()(const int &n) const
{
return n % 3 == 0;
}
};
int main()
{
std::list<int> l({ 5, 2, 6, 1, 13, 9, 19 });
std::cout << l.size();
std::remove_if(l.begin(), l.end(), P());
std::cout << l.size() << std::endl;
return 0;
}
打印出“77”。我预计它会打印出“75”,因为 P 结构的运算符 () 在其参数没有除以 3 的余数时返回 true。'6' 和 '9' 就是这种情况(两个元素七)。我错过了什么吗?
谢谢。