Ist das Iterieren von std::list und std::vector gleichschnell?
-
oder ist die Liste langsamer?
-
Kann man AFAIK nicht pauschal sagen. Wenn der Iterator des vectors ein T* ist, ist vector (minimal) schneller. Ansonsten ist die Geschwindigkeit von vector und list ziemlich gleich.
Bei list muss nämlich bei "Iterator++" immmer ein Zeiger dereferenziert werden. Bei vector passiert das nur, wenn der Iterator kein Zeiger ist. Wenn er einer ist, ist "Iterator++" ein einfaches Inkrementieren.
-
Bei list muss nämlich bei "Iterator++" immmer ein Zeiger dereferenziert werden.
Wieso das? Eine einfache Zeigerzuweisung reicht doch aus.