Angenommen, wir haben ein vector
von vector
s und wir initialisieren alle Elemente auf 0.Iterieren über alle, aber das erste Element in einem Vektor
vector<vector<int>> P(MyObjects.size() + 1, vector<int>(MyBag.MaxCapacity + 1, 0));
Meine Frage ist:
Ist es möglich, über iterieren a vector
beginnend mit 1 Spalte und 1 in irgendeinem folgenden Code ändern?
for (auto& row : P) //Tried to add (row + 1) : P but I'm receiving an Error
{
for (auto& elem : row) //Tried to add(elem + 1) : row but I'm receiving an Error
{
std::cout << elem << " ";
}
}
Ich war auf der Suche nach der Antwort hier auf SO und im Web, aber es gab nichts, das sogar so ähnlich war.
bin ich daran interessiert sind nur in Lösungen, die auto
EDIT: Hier ist die Ausgabe von Fehlern
main.cpp:74:18: error: expected ‘;’ before ‘+’ token
for (auto& row +1 : P)
^
main.cpp:74:21: error: expected ‘;’ before ‘:’ token
for (auto& row +1 : P)
^
main.cpp:74:21: error: expected primary-expression before ‘:’ token
main.cpp:74:21: error: expected ‘)’ before ‘:’ token
main.cpp:74:21: error: expected primary-expression before ‘:’ token
Und es ist ein Code, der ich versuchte,
zu verwendenfor (auto& row + 1 : P)
{
for (auto& elem + 1 : row)
{
std::cout << elem << " ";
}
}
Ja, ich weiß, dass wir kann folgende Syntax verwenden
for(vector< vector<int> >::iterator row = v.begin() + 1; row != v.end(); ++row) {
for(vector<int>::iterator col = row->begin() + 1; col != row->end(); ++col) {
cout << *col;
}
}
aber ich möchte es nicht verwenden.
_ _ Sicher, es ist. Sie stellen wahrscheinlich die falsche Frage. Stellen Sie eine [MCVE] bereit und zeigen Sie Ihre Fehlermeldungen wörtlich an. –
_ "Ich bin nur an Lösungen interessiert, die auto verwenden" _ Das ist ein bisschen wie fragen: _Ich muss eine Schraube aus meiner Wand bohren. Was ist das richtige Werkzeug dafür? Hinweis Ich bin nur an Lösungen mit einem Hammer interessiert (weil das das einzige Werkzeug ist, das ich zur Hand habe) _. –
Sie können keinen Lvalue als Ausdruck haben. – ayushgp