【发布时间】:2022-01-23 13:01:02
【问题描述】:
这是我编写的代码,但是显示的内容不正确。请教我我需要解决什么问题。
#include <iostream>
#include <list>
using namespace std;
bool check(int passing){
int g;
if(g<=passing){
return false;
}else{
return true;
}
}
int main()
{
int pg;
cout<<"What is the passing grade?"<<endl;
cin>>pg;
list<int> grades = {100,90,93,95,92,98,97,99,96,94};
grades.remove_if(check);
for(int x : grades){
cout<<x<<'\t';
}
return 0;
}
【问题讨论】:
-
解释
int g; if(g<=passing)的用途,特别是考虑到g在与passing比较之前没有确定的值。 Methinksg应该是一个形式参数,而不是本地 var,它应该从main接收pg作为其参数,由 lambda 或 std 绑定绑定。事实上,完全摆脱check,只需在main中实现一个lambda。 -
int g; if(g
-
DEMO。要么使用 lambda 将
passing grade传递给check函数 -
你如何使用 lambda