Personnalized sorting.

Personnalized sorting.

functors

See version :

Pas de dépendances

Download :

#include <queue>
#include <iostream>

using namespace std;

class test
{
private:
    int a;
    int b;
public:
    test(int i,int j) {a=i;b=j;}
    int operator<(const test& t2) const {return a < t2.a;}
    int geta() const;
    int getb() const;
};

int test::geta() const
{
    return a;
}

int test::getb() const
{
    return b;
}

class monfoncteur:public binary_function<test,test,int>
{
public:
  int operator()(const test& t1,const test& t2) const
  {
    return t1.getb()<t2.getb();
  }
};

void test1()
{
    priority_queue<int,vector<int>,less<int> > q;
    q.push(5);
    q.push(13);
    q.push(8);
    q.push(6);
    cout << "lecture de la file de priotite" << endl;
    while(!q.empty())
    {
        cout << q.top() << endl;
        q.pop();
    }
}

void test2()
{
    priority_queue<test> q;
    q.push(test(15,3));
    q.push(test(8,6));
    q.push(test(9,1));
    q.push(test(12,7));
    cout << "lecture de la file de priotite" << endl;
    while(!q.empty())
    {
        cout << "a=" << q.top().geta() << " b=" << q.top().getb() << endl;
        q.pop();
    }
}

void test3()
{
    priority_queue<test,vector<test>,monfoncteur > q;
    q.push(test(15,3));
    q.push(test(8,6));
    q.push(test(9,1));
    q.push(test(12,7));
    cout << "lecture de la file de priotite" << endl;
    while(!q.empty())
    {
        cout << "a=" << q.top().geta() << " b=" << q.top().getb() << endl;
        q.pop();
    }
}

int main()
{
    test1();
    test2();
    test3();
    return 0;
}



Explanations

	No explanations yet.