also wenn du sowas meinst:
|
C-/C++-Quelltext
|
1
2
3
4
5
|
for (int i=0; i<vAmmo.size(); i++) {
if(FreeAmmo <= -1)
if(vAmmo[i].inUse == false)
FreeAmmo += vAmmo[i];
}
|
Das funktioniert mit list nicht, da man da keinen wahlfreien Zugriff hat. Dafür brauchst du einen Vector.
So ein Ding ("i") nennt man übrigens Zählvariable und die bekommt man nicht von dem Container, also der list oder dem vector, sondern die definiert man sich selbst. Die benutzt man nur zum Zugriff mit den komischen eckigen Klammern [] die du auch schon angesprochen hast. Das nennt man Random Access oder zu deutsch wahlfreier Zugriff.
Eine list hat intern eine doppelt verkettete Liste, auf sowas kannst du keinen wahlfreien Zugriff machen, das geht nur bei Vector.
Map hat so [] zwar auch, da wird das aber intern als Baum von Key-Value paaren gespeichert, das ist wieder was anderes.
Da du aber einfach wie in deinem Codeschnipsel vom Anfang einfach nur das Ding durchlaufen willst ("traversieren") machst du das mit dem Iterator eigentlich vollkommen richtig. Vorausgesetzt natürlich du willst das machen was du tust.
gruß