5-6.cpp

来自「Accelerated C++ 课后练习题 本人自己完成、可供参考」· C++ 代码 · 共 63 行

CPP
63
字号
#include<algorithm>
#include<iostream>
#include<vector>
#include<list>
#include<string>
using namespace std;

bool fgrade(const double& s)
{
	return s<5;
}
bool pgrade(const double& s)
{
	return !(s<5);
}
vector<double> extract_fails(vector<double>& store)
{
	vector<double>::iterator iter=stable_partition(store.begin(),store.end(),pgrade);
	vector<double> fail(iter,store.end());
	store.erase(iter,store.end());

	return fail;
}

vector<double> extract_fails1(vector<double>& store)
{
	vector<double> fail;
	remove_copy_if(store.begin(),store.end(),back_inserter(fail),fgrade);

	store.erase(remove_if(store.begin(),store.end(),pgrade),store.end());

	return fail;
}

int main()
{
	vector<double> store;

	double x;

	store.clear();
	while(cin>>x)
		store.push_back(x);
	cin.clear();
	char a;
	cin>>a;




	vector<double> fail=extract_fails1(store);

	cout<<endl<<"This have passed: ";
	for(vector<double>::iterator i=store.begin();i!=store.end();++i)
		cout<<*i<<string(5,' ');
	cout<<endl<<"This have failed: ";
	for(vector<double>::iterator j=fail.begin();j!=fail.end();++j)
		cout<<*j<<string(5,' ');


	cout<<endl;
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?