Предположим, мы имеем vector
vector
о с и инициализируем все элементы 0.перебирает все, но первый элемент в векторе
vector<vector<int>> P(MyObjects.size() + 1, vector<int>(MyBag.MaxCapacity + 1, 0));
Мой вопрос:
Можно перебрать a vector
, начиная с 1 колонки и 1, изменяя каким-то образом следующий код?
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 << " ";
}
}
Я искал ответ здесь, на SO и в Интернете, но ничего подобного ему не было.
Я заинтересован только в растворах, которые используют auto
EDIT: Вот вывод ошибок
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
И есть код, который я пытался использовать
for (auto& row + 1 : P)
{
for (auto& elem + 1 : row)
{
std::cout << elem << " ";
}
}
Да, я знаю, что мы может использовать следующий синтаксис:
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;
}
}
но я не хочу его использовать.
_ _ Конечно, это. Вероятно, вы задаете неправильный вопрос. Предоставьте [MCVE] и покажите свои сообщения об ошибках дословно. –
_ «Меня интересуют только решения, которые используют авто». Это немного похоже на вопрос: «Мне нужно развернуть винт из моей стены. Какой правильный инструмент для этого? Примечание. Меня интересуют только решения с использованием молотка (потому что это единственный инструмент, который у меня есть). –
Вы не можете иметь lvalue как выражение. – ayushgp