Member 13010616 Ответов: 2

Что делает это "для"? Как это работает?


Для чего это нужно? Как это работает?

для (СТД::вектор&ЛТ;п&ГТ;&ампер; усилитель; колонки : mCells) { столбец.размер(mHeight); }

Что я уже пробовал:

Для чего это нужно? Как это работает?

для (СТД::вектор&ЛТ;п&ГТ;&ампер; усилитель; колонки : mCells) { столбец.размер(mHeight); }

KarstenK

рассмотрим изучение синтаксиса языка с помощью некоторых учебных пособий в интернете. Это просто для итерации.

2 Ответов

Рейтинг:
0

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[^]