passender STL-Container gesucht



  • SeppJ schrieb:

    [b]vector<unsigned int>:
    [/b]Füllen: 1536 Milisekunden
    Iterieren: 86 Milisekunden        
    Random access, 100000000 mal: 84 Milisekunden         
    Random shuffle: 13349 Milisekunden
    Sortieren: 12136 Milisekunden
    Löschen: 0 Milisekunden
    
    [b]vector<unsigned int>, Füllen ohne reserve():
    [/b]Füllen: 2078 Milisekunden
    
    [b]deque<unsigned int>:[/b]
    Füllen: 1641 Milisekunden
    Iterieren: 160 Milisekunden        
    Random access, 100000000 mal: 340 Milisekunden       
    Random shuffle: 19180 Milisekunden
    Sortieren: 14341 Milisekunden
    Löschen: 132 Milisekunden
    

    Mit VS2010:

    [b]vector<unsigned int>:[/b]
    Füllen: 2278 Milisekunden
    Iterieren: 124 Milisekunden   
    Random access, 100000000 mal: 94 Milisekunden     
    Random shuffle: 14446 Milisekunden
    Sortieren: 7269 Milisekunden
    Löschen: 0 Milisekunden
    
    [b]vector<unsigned int>, Füllen ohne reserve():[/b]
    Füllen: 3245 Milisekunden
    
    [b]deque<unsigned int>:[/b]
    Füllen: 4680 Milisekunden
    Iterieren: 296 Milisekunden         
    Random access, 100000000 mal: 874 Milisekunden       
    Random shuffle: 25007 Milisekunden
    Sortieren: 21466 Milisekunden
    Löschen: 1279 Milisekunden
    

  • Mod

    Wow, VS2010 hat aber einen ziemlich guten Sortieralgorithmus für vector (Komisch das er für deque überproportional schlecht abschneidet). Könnte natürlich an einer günstig zu sortierenden Zufallsverteilung liegen, aber dennoch bin ich irgendwie beeindruckt. Da sieht man mal wo die Entwicklungszeit geblieben ist die nicht zur Verbesserung der deque benutzt wurde 😉 .

    edit: Warum ist Iterieren bei VS langsamer als Random access? Wie kann das überhaupt möglich sein?

    edit2: Ups ich sehe gerade, dass mein Code gar keinen Random-access macht, sondern iteriert. Das heißt, life hat bei seiner Messung vermutlich checked iterators noch an.

    Wenn ich tatsächlich Random access mache ( foo[rand()%max] ), dann bekomme ich für vector 6800 ms und für deque 23000 ms.


Anmelden zum Antworten