Also habe ich folgendes:
std::vector< std::vector <int> > fog;
und ich initialisiere es sehr naiv wie:
for(int i=0; i<A_NUMBER; i++)
{
std::vector <int> fogRow;
for(int j=0; j<OTHER_NUMBER; j++)
{
fogRow.push_back( 0 );
}
fog.push_back(fogRow);
}
Und es fühlt sich sehr falsch an ... Gibt es eine andere Möglichkeit, einen Vektor wie diesen zu initialisieren?
std::vector<int>::max_size()
. HierAntworten:
Verwenden Sie den
std::vector::vector(count, value)
Konstruktor, der eine Anfangsgröße und einen Standardwert akzeptiert:Wenn beispielsweise ein anderer Wert als Null
4
als Standardwert erforderlich war, gilt Folgendes:Ich sollte auch erwähnen, dass in C ++ 11 eine einheitliche Initialisierung eingeführt wurde, die die Initialisierung von
vector
und anderen Containern ermöglicht, indem{}
:quelle
std :: vector <std :: vector <int>>
as machestatic
?Angenommen, Sie möchten den 2D-Vektor m * n mit dem Anfangswert 0 initialisieren
wir könnten das tun
quelle
std::
Er verlängert sich und die Leute mögen möglicherweise eine kurze und direkte Antwort. 3) Die lange Benennung von Variablen verwirrt Anfänger. Ich bin auch ein Anfänger, weiß nicht wirklich, wie wichtig wir brauchenstd::
, brauche einen ausführbaren Code, damit ich weiß, was jede Variable tutEs gibt keine
append
Methode instd::vector
, aber wenn Sie einen Vektor erstellen möchten, derA_NUMBER
Vektoren enthältint
, von denen jederother_number
Nullen enthält, können Sie dies tun:quelle
Die allgemeine Syntax lautet, wie bereits dargestellt:
Hier kann der Vektor 'v' als zweidimensionales Array mit 'A_NUMBER' von Zeilen und 'OTHER_NUMBER' von Spalten dargestellt werden, deren Anfangswert auf 'DEFAULT_VALUE' gesetzt ist.
Es kann auch so geschrieben werden:
Die Eingabe von Werten in einen 2D-Vektor ähnelt der Eingabe von Werten in ein 2D-Array:
Beispiele wurden bereits in anderen Antworten angegeben ....!
quelle
Ich denke, der einfachste Weg, dies zu erreichen, ist:
10 ist die Größe des äußeren oder globalen Vektors, der der Hauptvektor ist, und 11 ist die Größe des inneren Vektors vom Typ int, und Anfangswerte werden auf 100 initialisiert! Das ist meine erste Hilfe auf dem Stapel, ich denke, es hilft jemandem.
quelle
Angenommen, Sie möchten einen zweidimensionalen Ganzzahlvektor mit n Zeilen und m Spalten mit dem Wert ' VAL ' initialisieren.
Schreiben Sie es als
Dieser VAL kann eine Ganzzahlvariable oder eine Konstante wie 100 sein
quelle
Der empfohlene Ansatz besteht darin, einen Füllungskonstruktor zu verwenden, um einen zweidimensionalen Vektor mit einem bestimmten Standardwert zu initialisieren:
Dabei sind M und N Dimensionen für Ihren 2D-Vektor.
quelle
Mein
c++ STL
Code zur Initialisierung5*3 2-D vector
mitzero
quelle