📄 5-0-0.cpp
字号:
#include<iostream>
#include<vector>
#include<list>
#include<string>
using namespace std;
//predicate to determine whether a number failed
bool fgrade(const double& s)
{
return s<5;
}
//version 3;inerators but no indexing;stil potentially slow
vector<double> extract_fails(vector<double>& store)
{
vector<double> fail;
vector<double>::iterator iter=store.begin();
while(iter!=store.end())
{
if(fgrade(*iter))
{
fail.push_back(*iter);
iter=store.erase(iter);
}
else
++iter;
}
return fail;
}
//version 4: use list instead of vector
list<double> extract_fails(list<double>& store)
{
list<double> fail;
list<double>::iterator iter=store.begin();
while(iter!=store.end())
{
if(fgrade(*iter))
{
fail.push_back(*iter);
iter=store.erase(iter);
}
else
++iter;
}
return fail;
}
int main()
{
// vector<double> store;
list<double> store;
double x;
store.clear();
while(cin>>x)
store.push_back(x);
cin.clear();
char a;
cin>>a;
list<double> fail=extract_fails(store);
cout<<endl<<"This have passed: ";
for(list<double>::iterator i=store.begin();i!=store.end();++i)
cout<<*i<<string(5,' ');
cout<<endl<<"This have failed: ";
for(list<double>::iterator j=fail.begin();j!=fail.end();++j)
cout<<*j<<string(5,' ');
/*
vector<double> fail=extract_fails(store);
cout<<endl<<"This have passed: ";
for(vector<double>::size_type i=0;i<store.size();++i)
cout<<store[i]<<string(5,' ');
cout<<endl<<"This have failed: ";
for(vector<double>::size_type j=0;j<fail.size();++j)
cout<<fail[j]<<string(5,' ');
*/
cout<<endl;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -