Діапазон C ++ для циклу (з прикладами)

У цьому підручнику ми дізнаємося про діапазон C ++ для циклів та його найкращі практики за допомогою прикладів.

C ++ 11 представив діапазонний forцикл. Цей forцикл спеціально використовується з колекціями, такими як масиви та вектори .

Наприклад,

 // initialize an int array int num(3) = (1, 2, 3); // use of ranged for loop for (int var : num) ( // code )

Тут діапазонний forцикл повторює масив num від початку до кінця. intМінлива змінна зберігає значення елемента масиву в кожній ітерації.

Його синтаксис:

 for (rangeDeclaration : rangeExpression) ( // code )

У наведеному вище прикладі

  • rangeDeclaration -int var
  • rangeExpression - число
Працює цикл ranged for в C ++

Приклад 1: Діапазон для циклу з використанням масиву

 #include using namespace std; int main() ( // initialize array int numArray() = (1, 2, 3, 4, 5); // use of ranged for loop to print array elements for (int n : numArray) ( cout << n << " "; ) return 0; )

Вихідні дані

 1 2 3 4 5

У цьому прикладі ми оголосили та ініціалізували intмасив з іменем numArray. Тут ми використали forцикл ranged для роздрукування елементів numArray.

  • перша ітерація - n приймає значення першого члена масиву, що є1
  • друга ітерація - n приймає значення, 2а потім друкується тощо.

Примітка: Цикл діапазону for автоматично повторює масив від початку до кінця. Нам не потрібно вказувати кількість ітерацій у циклі.

Приклад 2: Діапазон С ++ для циклу з використанням вектора

 #include #include using namespace std; int main() ( // declare and initialize vector vector num_vector = (1, 2, 3, 4, 5); // print vector elements for (int n : num_vector) ( cout << n << " "; ) return 0; )

Вихідні дані

 1 2 3 4 5

Приклад 3: Оголосіть колекцію всередині петлі

 #include using namespace std; int main() ( // define the collection in the loop itself for (int n : (1, 2, 3, 4, 5)) ( cout << n << " "; ) return 0; )

Вихідні дані

 1 2 3 4 5

Тут ми оголосили колекцію в самому циклі, тобто

 rangeExpression = (1, 2, 3, 4, 5)

Це також допустимий спосіб використання forциклу діапазону , і він працює так само, як і тоді, коли ми використовуємо фактичний масив або вектор.

C ++ - рейтинг найкращих практик циклу

У наведених вище прикладах ми оголосили змінну в forциклі для зберігання кожного елемента колекції в кожній ітерації.

 int num(3) = (1, 2, 3); // copy elements of num to var for (int var : num) ( // code )

Однак краще написати діапазон на основі циклу так:

 // access memory location of elements of num for (int &var : num) ( // code )

Зверніть увагу на використання &перед var. Ось,

  • int var : num- Копіює кожен елемент num до змінної var у кожній ітерації. Це погано для пам’яті комп’ютера.
  • int &var : num- Не копіює кожен елемент num у var. Натомість отримує доступ до елементів num безпосередньо з самого num. Це ефективніше.

Примітка:& оператор відомий в якості опорного оператора. Ми дізнаємось більше про це в покажчиках на C ++.

Робота адреси, що вказує на C ++, варіюється для циклу

Примітка: Якщо ми не змінюємо масив / вектор / колекцію в межах циклу, краще використовувати constключове слово в оголошенні діапазону.

 // collection is not modified in the loop for (const int &var : num) ( // code )

Цікаві статті...