Сравните между объектами двух разных пар - PullRequest
0 голосов
/ 22 марта 2012

Этот код имеет структуру, которая содержит цены и количества заявок, а также цены и количества заявок. Мы должны иметь возможность сопоставить цены предложения с ценами предложения, а затем после их сортировки из вектора спроса необходимо вычесть количества в векторе предложения. наша проблема в том, как отделить количества от цен после их сортировки?

#include "stdafx.h"
#include <iostream>
#include <algorithm>
#include <vector>
#include <map>
#include <string>
#include<iterator>
#include"Classes.h"

using  namespace std;
struct Pss: public pair <double, int>
{
    Pss (double const &s1, int const &s2):
    pair<double, int> (s1,s2)
    {}
};

ostream &operator <<(ostream &out, Pss const &p)
{
    return out<<" "<<p.first<<" "<<p.second<<endl;
}

class Sortby
{
    double Pss::*d_filed;
public:
    Sortby(double Pss::*filed)
        :
    d_filed (filed)
    {}
bool operator () (Pss const &p1, Pss const p2)const 
{
    return p1.*d_filed< p2.*d_filed;
}
};





int main()
{


    double BidP, AskP;
    int BidQ, AskQ;
   vector<Pss> BO;
   vector<Pss> AO;
    cout<< "eneter the Buying Orders, when you are done enter -1 twice"<<endl;
        while(1)
        {
                cin>>BidP>>BidQ;
                if (BidP==-1)
                break;
                BO.push_back(Pss(BidP,BidQ)); 
        }



        sort(BO.begin(),BO.end(),Sortby(&Pss::first));
        cout<<"Bid Orders"<<endl;
        copy(BO.begin(),BO.end(),ostream_iterator<Pss>(cout));



        cout<< "eneter the Selling Orders, when you are done enter -1 twice"<<endl;
        while(1)
        {
                cin>>AskP>>AskQ;
                if (AskP==-1)
                break;
                AO.push_back(Pss(AskP,AskQ));  
        }

        sort(AO.begin(),AO.end(),Sortby(&Pss::first));
        cout<<"Ask Orders"<<endl;
        copy(AO.begin(),AO.end(),ostream_iterator<Pss>(cout));



    int w;
    cin>> w; 

    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...