当我遇到这个奇怪的错误时,我正在尝试算法和 lambda:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(int argc, char *argv[])
{
vector<int> vec(10);
int OddCount;
for (int i = 1 ; i <= 10 ; ++i)
{
vec.push_back(i);
}
OddCount = count_if(vec.begin(),vec.end(),[](int v){return v%2 == 0;});
cout<<OddCount<<endl;
return 0;
}
我知道向量 vec 包含值 1 - 10,当我使用 count_if 算法检查奇数时,它返回预期的数字 5(1,3,5,7,9) 但是当我检查偶数我得到结果= 15,这很奇怪。这是怎么回事?