?? 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;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -