Mehrer Structs ablegen
-
Ich bräuchte etwas womit ich mehrere Structs sammeln kann. In Java kann man da nen Vector nehmen oder ne ArrayList aber wie macht man das in C++!? Ich weiß auch nicht wieviele Structs es werden, also muss die Größe dynamisch sein...
MfG Baweg
-
std::vector
-
In C++ gibts auch vector

std::vector im Header <vector>
Schau mal in der Referenz nach oder im Artikel zur stl hier im Forum
-
ich denke das geht wie in java. in c++ kannste auch 'nen vector nehmen wenn die structs alle von einer basisklasse abstammen (was ja bei java immer so ist).
-
Du könntest STL-Container verwenden (std::queue, std::vector, ...). Solltest du unterschiedliche Strukturen haben, kapsele sie am besten in einer Klasse, die von einer gemeinsamen Basis abgeleitet ist. Du kannst dann Zeiger auf die Basisklasse verwenden und sogar eine Methode einsetzen, um den Strukturtyp zu identifizieren.
-
Is immer von der gleichen Struktur...
Also wär vector da auch das richtige?
-
Perfekt
std::vector<NameDeinerStruct> nameDeinesVectors
-
Ok also reinschreiben scheint zu klappen...
Wie lese ichd as nun aus?
Mein struct heißt EntityState.
Es gibt dort zB die Eigenschaft name.In Java würd ichs fürs 1. Feld so machen: ((EntityState)vector.get(0)).name
Ich habe jetzt in C++ folgendes probiert: ((EntityState)vector[0]).nameSo scheints aber net zu gehen...
-
EntityState[0].name;
-
// vector anlegen std::vector<EntityState> vec; // zwei objecte da rein EntityState x1; EntityState x2; vec.push_back(x1); vec.push_back(x2);auf die objekte kannste dann z.b. so zugreifen
vec[0].name // == x1.name vec[1].name // == x2.name
-
Ah stimmt Datentyp kennt er ja...so läufts danke