I haben die folgende Struktur:Initialize Vektor mit verschiedenen Werten
enum model_class
{
...
};
struct SModelData
{
string m_strName;
model_class m_class;
vector<int> m_parts;
int m_iSeats;
SModelData(...) : ... {}
};
const multimap<int, SModelData*> models_data =
{
{ 400, new SModelData("Landstalker", STUFF, ***, 4) },
...
};
m_parts können unterschiedliche Werte haben int (const) und deren Zählung. Zum Beispiel Modell 401 wird haben: 6661, 6662, 6669, 6674; Modell 402: 6669, 6670; usw.
Was ist der beste Weg, um diese Sachen zu bekommen?
Zunächst möchte ich Ihnen nicht empfehlen habe Zeiger auf die Struktur in deiner Karte. Zweitens, brauchst du wirklich eine 'std :: multimap'? Kann ein einzelner Schlüssel mehrere Werte haben? Drittens initialisieren Sie einen Vektor, der dem Initialisieren der Map sehr ähnlich ist, indem Sie eine in Klammern eingeschlossene Liste verwenden, um eine ['std :: initializer_list'] zu erstellen (http://en.cppreference.com/w/cpp/utility/initializer_list). . Wenn Sie keinen Zeiger benötigen, brauchen Sie übrigens auch keinen Konstruktor. –
@Someprogrammerdude, ich habe den Typ in die Grundkarte geändert, danke. Es funktioniert gut mit initializer_list (vielleicht), danke. –