Was bedeutet es:C++ Struktur und Vektor
L[a].push_back(edge(b, c));
L - Vektor der Strukturkante:
vector<edge> L[1000];
Was bedeutet es:C++ Struktur und Vektor
L[a].push_back(edge(b, c));
L - Vektor der Strukturkante:
vector<edge> L[1000];
Sie können von der Rückseite Parsen dieser Aussage beginnen, und es herauszufinden, Schritt für Schritt :
edge(b, c)
macht einen neuen edge
durch den Konstruktorpush_back(edge(b, c))
hängt eine Kopie des neu geschaffenen edge
zum vector
L[a]
ein vector at index
ein from the array of vectors
L`Insgesamt nimmt, bedeutet dies "fügen Sie einen neuen edge
zu vector<edge>
bei Index a
des Arrays L[]
"
L ist kein Vektor der Kante, es ist ein Array von Vektoren der Kante. [1000]
bezieht sich nicht auf die Vektorgröße, sondern auf die Array-Größe. Also L[a].push_back(edge(b, c));
bedeutet, dass Sie eine Kante zum a'ten Vektor des Arrays zurückschieben.
Welchen Teil verstehst du nicht? Die [Dokumentation für 'std :: vector :: push_back'] (http://en.cppreference.com/w/cpp/container/vector/push_back) ist ziemlich erklärend. –
WhozCraig
Warum L [a]? Welchen Unterschied zwischen L.push_back und L [a] .push_back? Kannst du wissen, wie man das gleiche auf C# schreibt? –
@ R.I. In C# wäre das "L [a] .Add (new Edge (b, c))". 'L' wäre' List [] L = new Liste [1000] 'mit einzelnen Elementen gefüllt mit' new List () '. –
dasblinkenlight