Ц ++ распон за петљу (са примерима)

У овом упутству ћемо научити о Ц ++ опсегу за петље и његовим најбољим праксама уз помоћ примера.

Ц ++ 11 је представио рангирану forпетљу. Ова forпетља се посебно користи за колекције као што су низови и вектори .

На пример,

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

Овде рангирана forпетља понавља низ низа од почетка до краја. intПроменљива вар чува вредност низа елемента у свакој итерацији.

Његова синтакса је,

 for (rangeDeclaration : rangeExpression) ( // code )

У горњем примеру,

  • рангеДецларатион -int var
  • рангеЕкпрессион - нум
Рад петље Ранге фор у Ц ++

Пример 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низ назван нумАрраи. Овде смо користили forпетљу Ранге за испис елемената нумАрраи.

  • прва итерација - н узима вредност првог члана низа, што је1
  • друга итерација - н узима вредност, 2а затим се штампа и тако даље.

Напомена: Петља за опсег фор аутоматски понавља низ од почетка до краја. Не треба да наводимо број итерација у петљи.

Пример 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петље са опсегом и ради на исти начин као када користимо стварни низ или вектор.

Ц ++ је рангиран за најбоље праксе петље

У горњим примерима прогласили смо променљиву у 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 )

Обратите пажњу на употребу &пре вар. Ево,

  • int var : num- Копира сваки елемент нум у променљиву вар у свакој итерацији. Ово није добро за меморију рачунара.
  • int &var : num- Не копира сваки елемент нум у вар. Уместо тога, приступа елементима нум директно из самог нум. Ово је ефикасније.

Напомена:& оператер познат као референтна оператор. О томе ћемо сазнати више у Ц ++ показивачима.

Рад адреса усмјерен на Ц ++ кретао се у кругу петље

Напомена: Ако не мењамо низ / вектор / колекцију унутар петље, боље је користити constкључну реч у декларацији опсега.

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

Занимљиви Чланци...