STL-Queue verhält sich nicht deterministisch



  • Hi,

    ich verwende eine STL-Queue um darin selbstdefinierte Klasseninstanzen einzulagern. Die Zeit zum Einlagern verhält sich etwa linear zu der Anzahl der einzulagernden Elemente. Ab einer bestimmten Anzahl habe ich aber einen Sprung drin.
    Ich vermute, dass die Queue dann zusätzlichen Speicher anfordert. Kann das sein? Ich hab mal gelesen, dass die Queue mit einer Startgröße initialisiert wird und der allokierte Speicher immer verdoppelt wird, sobald die Queue voll ist.

    Bei 1000 eingelagerten Elementen hab ich dann ein ganz merkwürdiges Verhalten. Mal dauert es die Zeit t, und manchmal nur die Zeit t/2. Wie kann das sein?

    Ich hab im Netz leider keine Dokumentation gefunden, die Auskunft darüber gibt, wie sich die Queue genau verhält.
    Hat jemand einen Tipp?

    Gruß, Thomas.



  • Der std::queue ist nur ein Adapter für andere Container. Standardmäßig ist afaik std::deque eingestellt, du müsstest bei dessen Verhalten nachschauen.


Anmelden zum Antworten