Afzaal Ahmad Zeeshan
Это цикл for each в C++, и он повторяется по столбцам, которые у вас есть в вашей (скорее всего) сетке. Он называется циклом на основе диапазона, так как вы получаете диапазон неявно в нем.
И как только он получает столбец, он изменяет его размер до определенной высоты—также обратите внимание на опорный знак. Без ссылки pass-by ваша операция не будет иметь никакого эффекта на столбцы. Краткий пример, который я создал для демонстрации, находится здесь,
void processprint() {
int array[] = { 1, 2, 3, 4 };
// Increment the values, without modifying actual elements.
for (int item : array) {
item += 2;
}
for (int item : array) {
std::cout << item << std::endl;
}
}
Это приведет к печати того же массива, но без изменений, однако если вы измените строку,
void processprint() {
int array[] = { 1, 2, 3, 4 };
// Increment the values, change actual values.
for (int& item : array) {
item += 2;
}
for (int item : array) {
std::cout << item << std::endl;
}
}
Теперь это приведет к печати увеличенных значений. Проверьте это здесь,
Оболочка C++ [
^]
Range-based for loop (начиная с C++11) - cppreference.com[
^]