Ich versuche, ein Verständnis der zweidimensionalen Zeichenkettenvektoren zu entwickeln (Ie ein Vektor innerhalb eines Vektors) und nach einigen Stunden, die ich kämpfen kann, scheint nicht, die Größe von zu vergrößern der äußere Vektor.C++ - die Größe des äußeren Vektors im zweidimensionalen Zeichenkettenvektor vergrößern
Ich fange an, indem ich die folgenden Werte zum ersten inneren Element {"ABC", "Abacus", "Abacus Football Club", "001"} hinzufüge.
Ich möchte dann ein weiteres äußeres Element hinzufügen und "BCD" als ersten Wert hinzufügen. Nach vielen fehlgeschlagenen Versuchen kann ich die Größe des äußeren Vektors nicht erhöhen. Ich präsentiere das Unten, von dem ich denke, dass es das "nächste" ist, das ich habe.
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
vector< vector<string> > vecTeams(1, vector<string>(4));
vecTeams[0][0] = "ABC";
vecTeams[0][1] = "Abacus";
vecTeams[0][2] = "Abacus Football Club";
vecTeams[0][3] = "001";
cout << vecTeams[0][1] << endl;
vecTeams.push_back(1);
vecTeams[1][0] = "BCD";
cout << vecTeams[1][0] << endl;
return 0;
}
Wenn es zu kompilieren versuchen nicht mag:
vecTeams.push_back(1);
Was ist es, dass ich bin Missverständnis und wie kann ich erhöhen die Größe des Vektors und somit weiterhin Daten hinzufügen?
Vielen Dank,
José
Denken Sie an Vektor von Vektoren. Du füllst also einen inneren Vektor mit einigen Elementen mit einem 'push_back()' und dann 'push_back (inneren Vektor) 'als Ganzes mit dem äußeren Vektor –
Statt' push_back' solltest du' resize' verwenden. – Spencer
Wenn Sie beabsichtigen, dass 1 an den Konstruktor des neuen Vektors weitergeleitet wird, indem Sie einen inneren Vektor der Größe 1 erstellen, können Sie das mit 'vecTeams.emplace_back (1);' tun –