我用算法和lambda表達式進行試驗,當我遇到這個奇怪的錯誤來了:算術錯誤與count_if()
#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,這很奇怪。這是怎麼回事?
體積%2 == 0意味着v甚至會,所以你實際上是計數偶數,並不奇怪。 –
對不起,對不起。 –