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 MilisekundenMit 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
-
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.