Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.09.2010, 22:52   #1
Progsenya
Пользователь
 
Регистрация: 30.05.2010
Сообщений: 80
По умолчанию реализация алгоритма find_if

Код:
#include<iostream>
#include<iterator>
#include<algorithm>
#include<vector>
#include<time.h>
#include<fstream>
#include<deque>
#include<string>
#include<typeinfo>
#include<string.h>
#include<conio.h>
#include<iomanip>
using namespace std;

class PC
{
public:
	string name;
	int ram;
	int hdd;
	
	PC();
	PC(string pr,int ram,int hdd);
	void Display()
{
	cout<<setw(5)<<name<<setw(10)<<hdd<<"  "<<ram<<"  "<<endl;
	ofstream out("test.txt",ios::out);
}
	static bool SortName(const PC &a, const PC &b)
	{
		return(a.name < b.name);
	}
	static bool SortHdd(const PC &c,const PC &d)
	{
		return(c.hdd>d.hdd);
	}
	static bool SortMem(const PC&e,const PC &f)
	{
		return(e.ram>f.ram);
	}
	static  bool Serch(const PC &r)
	{
		return r.name=="AMD";
	}
	static bool Show(const PC &s)
	{
		return s.name=="AMD";
	}
	
};
PC::PC()
{
		this->name="Core2Duo";
		this->hdd=1000;
		this->ram=2048;
}
PC::PC(string pr,int ram,int hdd)
{
		this->name=pr;
		this->hdd=hdd;
		this->ram=ram;
}


void main()
{
	int n=0;
	ostream_iterator<int,char>out_it (cout," ");
	vector<PC> pc;
	vector<PC>::iterator it;
	pc.push_back(PC("Intel",1500,4096));
	pc.push_back(PC("AMD",320,2048));
	pc.push_back(PC("Apple",1000,4096));
	pc.push_back(PC("I7",2000,32000));
	pc.push_back(PC("Quad",640,2048));
	pc.push_back(PC("AMD",6000,4096));
	cout<<pc.size()<<endl;
	sort(pc.begin(),pc.end(), &PC::SortName);
	for(vector< PC >::iterator i = pc.begin(); i != pc.end(); i++ )
	{
      i->Display();
	  
	}
	cout<<"-------------------------"<<endl;
	sort(pc.begin(),pc.end(),&PC::SortHdd);
	for(vector< PC >::iterator i = pc.begin(); i != pc.end(); i++ )
	{
      i->Display();
	}
	cout<<"--------------------------"<<endl;
	sort(pc.begin(),pc.end(),&PC::SortMem);
	for(vector< PC >::iterator i = pc.begin(); i != pc.end(); i++ )
	{
      i->Display();
	}
	cout<<"-------------------------"<<endl;
	count_if(pc.begin(),pc.end(),&PC::Serch);
	cout<<"Computer width proccesor AMD-"<<count_if(pc.begin(),pc.end(),&PC::Serch)<<endl;
	it=find_if(pc.begin(),pc.end(),&PC::Show);

	

}
проблема в том что не могу понять как вывести на экран
Progsenya вне форума Ответить с цитированием
Старый 10.09.2010, 23:25   #2
sever-42
Пользователь
 
Регистрация: 22.04.2010
Сообщений: 96
По умолчанию

Код:
it = pc.begin();
	while ((it=find_if(it ,pc.end(),&PC::Show)) != pc.end()) {
		cout << it->name << /*...*/ endl;
		++it;
	}
include <Qt>
sever-42 вне форума Ответить с цитированием
Старый 10.09.2010, 23:58   #3
Progsenya
Пользователь
 
Регистрация: 30.05.2010
Сообщений: 80
По умолчанию

спасибо большое очень помогли
Progsenya вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
STL реализация алгоритма сортировки в классе Progsenya Общие вопросы C/C++ 0 09.09.2010 21:36
Реализация алгоритма метода ближайшего соседа на с++!!!! Nimbu Помощь студентам 0 28.06.2010 17:16
реализация алгоритма дешифровки Valx Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 30.03.2010 08:18
Реализация алгоритма Евклида с точностью??? dewer Помощь студентам 8 06.07.2009 08:44