⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 5-0-0.cpp

📁 Accelerated C++ 课后练习题 本人自己完成、可供参考
💻 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 + -