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 for
loop. Denna for
slinga 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 for
slingan arrayen num från början till slut. Den int
variabeln 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

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 int
matris med namnet numArray. Här använde vi den rangordnade for
slingan för att skriva ut elementen i numArray.
- första iteration - n tar värdet av den första medlemmen i arrayen, vilket är
1
- andra iteration - n tar värdet av
2
och 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 for
slingan, 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 for
slingan 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.

Obs! Om vi inte ändrar arrayen / vektorn / samlingen i slingan är det bättre att använda const
nyckelordet i intervaldeklarationen.
// collection is not modified in the loop for (const int &var : num) ( // code )