C ++ Ranged for Loop (med exempel)

I den här handledningen kommer vi att lära oss mer om C ++ för loopar och dess bästa metoder med hjälp av exempel.

C ++ 11 introducerade intervallet forloop. Denna forslinga används specifikt med samlingar som matriser och vektorer .

Till exempel,

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

Här upprepar den rangordnade forslingan arrayen num från början till slut. Den intvariabeln var lagrar värdet i matrisen elementet i varje iteration.

Dess syntax är,

 for (rangeDeclaration : rangeExpression) ( // code )

I exemplet ovan,

  • sortiment Deklaration -int var
  • rangeExpression - num
Arbetar av ranged for loop i C ++

Exempel 1: Rangordnade för loop med hjälp av Array

 #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; )

Produktion

 1 2 3 4 5

I det här exemplet deklarerade och initialiserade vi en intmatris med namnet numArray. Här använde vi den rangordnade forslingan för att skriva ut elementen i numArray.

  • första iteration - n tar värdet av den första medlemmen i arrayen, vilket är1
  • andra iteration - n tar värdet av 2och skrivs ut och så vidare.

Obs! Området för slinga upprepar arrayen automatiskt från början till slutet. Vi behöver inte ange antalet iterationer i slingan.

Exempel 2: C ++ rangordnade för loop med hjälp av vektor

 #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; )

Produktion

 1 2 3 4 5

Exempel 3: Förklara insamling inuti loop

 #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; )

Produktion

 1 2 3 4 5

Här har vi förklarat samlingen inom själva slingan, dvs.

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

Detta är också ett giltigt sätt att använda den rangordnade forslingan, och det fungerar på samma sätt som när vi använder en faktisk matris eller vektor.

C ++ Ranged for Loop Best Practices

I exemplen ovan har vi förklarat en variabel i forslingan för att lagra varje element i samlingen i varje iteration.

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

Det är dock bättre att skriva intervallet baserat på loop så här:

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

Lägg märke till användningen av &före var. Här,

  • int var : num- Kopierar varje element av num till var-variabeln i varje iteration. Detta är inte bra för datorminne.
  • int &var : num- Kopierar inte varje element av num till var. Istället får du tillgång till elementen i num direkt från num själv. Detta är mer effektivt.

Obs: Den &operatör är känt som referensoperatören. Vi lär oss mer om det i C ++ pekare.

Arbetet med adresspekande i C ++ varierade för loop

Obs! Om vi ​​inte ändrar arrayen / vektorn / samlingen i slingan är det bättre att använda constnyckelordet i intervaldeklarationen.

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

Intressanta artiklar...