1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
| #include <iostream>
#include <iterator>
#include <sstream>
#include <vector>
#include <string>
#include <algorithm>
//class simple de RDV
class RDV
{
public:
RDV(int jour,int semaine):m_jour(jour),m_semaine(semaine) {}
const int & GetJour() {return m_jour;};
const int & GetSemaine() {return m_semaine;};
private:
int m_jour;
int m_semaine;
};
//foncteur qui va tester le jour
class MonTestJour
{
public :
explicit MonTestJour(int jour):m_jour(jour){}
bool operator ()(RDV* momRDV) {return momRDV->GetJour() == m_jour;};
private :
int m_jour;
};
//foncteur qui va tester la semaine
class MonTestSemaine
{
public :
explicit MonTestSemaine(int semaine):m_semaine(semaine){}
bool operator ()(RDV* momRDV) {return momRDV->GetSemaine() == m_semaine;};
private :
int m_semaine;
};
//foncteur qui va tester la semaine et le jour
class MonTestJourSemaine
{
public :
explicit MonTestJourSemaine(int jour,int semaine):m_jour(jour),m_semaine(semaine){}
bool operator ()(RDV* momRDV) {return (momRDV->GetSemaine() == m_semaine) && (momRDV->GetJour() == m_jour);};
private :
int m_jour;
int m_semaine;
};
int main(int argc, char **argv)
{
std::vector<RDV *> vect(5);
vect[0] = new RDV(1,20);
vect[1] = new RDV(2,30);
vect[2] = new RDV(5,50);
vect[3] = new RDV(10,60);
vect[4] = new RDV(30,10);
std::vector<RDV *>::iterator it;
it =std::find_if(vect.begin(), vect.end(), MonTestJour(5) );
std::cout<<(*it)->GetJour()<<" "<<(*it)->GetSemaine()<<std::endl;
it =std::find_if(vect.begin(), vect.end(), MonTestSemaine(10) );
std::cout<<(*it)->GetJour()<<" "<<(*it)->GetSemaine()<<std::endl;
it =std::find_if(vect.begin(), vect.end(), MonTestJourSemaine(2,30) );
std::cout<<(*it)->GetJour()<<" "<<(*it)->GetSemaine()<<std::endl;
return 0;
} |
Partager