Подтвердить что ты не робот

Структура С++ for-loop с несколькими инициализациями переменных

На втором for-loop я получаю следующую ошибку от gcc:

error: expected unqualified-id before 'int'

Я не уверен, что мне не хватает. Я просмотрел документацию о том, как должен выглядеть цикл for, и я все еще запутался. Что здесь не так?

#include <iostream>
#include <vector>

int main() { 
std::vector<int> values; 

for (int i = 0; i < 20; i++) { 
  values.push_back(i); 
}   

std::cout << "Reading values from 'std::vector values'" << std::endl;
for (int i = 0, int col = 0; i < values.size(); i++, col++) {
  if (col > 10) { std::cout << std::endl; col == 0; }
  std::endl << values[i] << ' ';
  }
}
4b9b3361

Ответ 1

Попробуйте без int до col.

for (int i = 0, col = 0; i < values.size(); i++, col++)

Ответ 2

Другие уже рассказали вам, как устранить проблему, которую вы заметили. В другом случае, в этом:

if (col > 10) { std::cout << std::endl; col == 0; }

Кажется почти уверенным, что последнее утверждение здесь: col==0; действительно должно быть col=0;.

Ответ 3

Это должно исправить его

for (int i = 0, col = 0; i < values.size(); i++, col++) {
  if (col > 10) { std::cout << std::endl; col == 0; }
  std::endl << values[i] << ' ';
  }
}

Определение переменной выглядит следующим образом:

тип данных variable_name [= init_value] [, variable_name [= init_value]] *;

Ответ 4

Не объявлять int после использования запятой,

for (int i = 0,col = 0; i < values.size(); i++, col++) {
  if (col > 10) { std::cout << std::endl; col == 0; }
  std::endl << values[i] << ' ';
  }
}

Ответ 5

Это похоже на регулярное объявление/инициализацию нескольких переменных в одной строке с использованием оператора запятой. Вы можете сделать это:

int a = 1, b = 2;

Объявление 2 ints. Но не это:

int a = 1, int b = 2;   //ERROR