C ++ vector <pair <int,int >> std :: all_of()函数问题(重定向到头文件)

时间:2019-04-01 15:35:54

标签: c++

我要检查向量中的每一对是否“完全偶数”。

“完全偶数”对是其中第一和第二个元素均为偶数的对。

如果向量中的每一对都是“完全偶数”,则程序应打印“是”。

所以,这是我的代码:

#include <iostream>
#include <bits/stdc++.h>
#include <algorithm>
#include <vector>
using namespace std;

bool func(auto ip) {
if(ip.first%2==0 and ip.second%2==0) {
    return true;
}
else {
    return false;
}
}
int main() {
vector<pair<int, int>> vec;
vec.push_back(make_pair(2,2));
vec.push_back(make_pair(2,3));
vec.push_back(make_pair(4,1));
vec.push_back(make_pair(8,3));
vec.push_back(make_pair(7,9));
if(all_of(vec.begin(),vec.end(), [] (auto i) {func(i);}) {
    cout<<"YES"<<endl;
}
return 0;
}

运行该程序时,我得到的是“错误:无效值,应该被忽略”。

那么,有什么帮助吗?并且必须使用函数“ func”,而不是“返回i.first%2 == 0和i.second%2 == 0”。

1 个答案:

答案 0 :(得分:1)

在等待答案的同时,我发现了错误所在:

在该行中: if(all_of(vec.begin(),vec.end(),[](auto i){func(i);})){

我需要说:

if(all_of(vec.begin(),vec.end(),[](auto i){ RETURN func(i);}))

就是这样。 :)