std::list funktioniert nicht so, wie sie es soll



  • Hallo C++-Forum!

    Ich beschäftige mich in letzter Zeit mit C++ in Verbindung mit HGE und will nun die Gesamtanzahl der lebendigen Partikel bei Benutzung eines hgeParticleManagers herausfinden. Ich habe vor, alle von dem hgeParticleManager erzeugten hgeParticleSystems in einer std::list zu speichern und so den Mittelwert herauszufinden. Mein Mittelwert beträgt jedoch immmer 0. Meine list definiere ich so:

    std::list<hgeParticleSystem> parts;
    

    Meine Funktion zur Berechnung des Mittelwertes lautet wie folgt:

    int CalcParticleCount(){
    	int res = 0;
    	hgeParticleSystem *elem = 0;
    	std::list<hgeParticleSystem>::iterator it;	
    	for (it=parts.begin() ; it != parts.end(); ++it ){
    		res += it->GetParticlesAlive();
    	}
    	return res;
    }
    

    Das Hinzufügen zur Liste geschieht so:

    PC = partMan->SpawnPS(&ExploSys->info,x-16,y-16);
    	if (PC != 0)
    	parts.push_back(*PC);
    

    Exceptions werden keine geworfen, doch der Mittelwert bleibt 0 und ich weiß nicht wieso. Kann mir jemand helfen?



  • Ich sehe keinen Mittelwert.



  • Du scheinst das Objekt zu kopieren, probiere es mal mit Zeigern.

    std::list funktioniert nicht so, wie sie es soll

    Doch, tut sie.


Anmelden zum Antworten