Extra-Parameter in std::queue reinquetschen



  • Hallo,

    ich habe eine queue, die im Moment wie folgt ausschaut:

    std::queue<Request>
    

    wobei Request eine Klasse ist, die ich implementiert habe.

    Jetzt möchte ich noch eine Liste von IP-Adressen in diese Queue tun.

    Ist es mit sowas wie std::queue<Request, list <string>> möglich?

    Danke für die Tipps!

    CP



  • Wie meinst du das jetzt? Eine queue<> kann nur gleichartige Objekte speichern, nicht bunt gemischt 'Request's und list<>en. Aber wenn du zu jedem Request noch eine Liste packen willst, kannst du sowas nehmen:

    typedef std::deque<std::pair<Request,std::list<std::string> > > Request_Array;
    

    (bei solchen Bandwürmern ist man froh, daß es typedef gibt :D)



  • Aber wenn du zu jedem Request noch eine Liste packen willst, kannst du sowas nehmen:

    Eigentlich möchte ich zu jedem Request von der Queue genau eine IP-Addresse hinfügen.



  • Dann pack doch Request und Adresse jeweils zu einem std::pair<> zusammen (oder vielleicht ist es sogar besseres Design, wenn die Adresse Attribut der REquest-Klasse wird).



  • typedef std::deque< std::pair<Request, std::string > > deque_request;
    
    deque_request deque;
    qeque.push_back(std::make_pair(myRequest, "192.168.0.1"));
    

    ...


Anmelden zum Antworten