In welcher Richtung "betreibt" ihr eine std::deque?



  • Bloss aus kindischem Interesse...

    Wenn ihr eine reine FIFO braucht, und dafür eine std::deque verwendet, wie steckt ihr Daten rein, und wie holt ihr sie wieder raus?

    push_back & pop_front
    oder
    push_front & pop_back
    ?

    Oder mal-so-mal-so?


  • Administrator

    hustbaer schrieb:

    push_back & pop_front

    In 99% der Fälle. Macht für mich irgendwie mehr Sinn, wieso auch immer 🙂

    Aber wenn ich eine FIFO will, dann nehme ich persönlich sowieso meistens den Adapter:
    http://www.cplusplus.com/reference/stl/queue/

    Habe mir sogar selber einen Adapter gebaut, falls ich ein paar Funktionen mehr brauche. Aber der verwendet dann eben push_back & pop_front 😉

    Grüssli



  • da kann ich mich Dravere nur anschließen 🙂



  • Scheint mir irgendwie auch logischer, eine Warteschlange von vorne zu lesen und hinten einzufügen.

    Wenn ich aber den Adapter std::queue nehme, setze ich den zugrunde liegenden Container oft auf std::list . Man nimmt zwar ein wenig mehr Allokationen in Kauf, dafür sind sie gleichmässig und es wird kein Platz verschwendet. Eine verkettete Liste scheint mir dafür aber auch gut geeignet. Naja, ist auch ein wenig mein persönliche Meinung... 😉



  • Interessant. Ich auch "push_back & pop_front".
    Klar, wenn man sich den Begriff Warteschlange hernimmt (jetzt wirklich mit Leuten die irgendwo anstellen), dort bezeichnet man ja auch das Ende wo die Leute stehen die als nächste drankommen als "Kopf", und der "Kopf" ist nunmal vorne.

    z.T. std::list: die hab' ich glaub ich noch nie irgendwo verwendet. Hatte denke ich noch nie einen Fall wo es wirklich Sinn gemacht hätte.


Anmelden zum Antworten