C ++ Ranged for Loop (com exemplos)

Neste tutorial, aprenderemos sobre os loops for variados em C ++ e suas melhores práticas com a ajuda de exemplos.

C ++ 11 introduziu o forloop variado . Este forloop é usado especificamente com coleções como matrizes e vetores .

Por exemplo,

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

Aqui, o forloop variado itera a matriz num do início ao fim. A intvariável var armazena o valor do elemento do array em cada iteração.

Sua sintaxe é,

 for (rangeDeclaration : rangeExpression) ( // code )

No exemplo acima,

  • rangeDeclaration -int var
  • rangeExpression - num
Trabalho de loop ranged for em C ++

Exemplo 1: Ranged for Loop using 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; )

Resultado

 1 2 3 4 5

Neste exemplo, declaramos e inicializamos uma intmatriz chamada numArray. Aqui, usamos o forloop variado para imprimir os elementos de numArray.

  • primeira iteração - n pega o valor do primeiro membro da matriz, que é1
  • segunda iteração - n obtém o valor de 2e é então impresso e assim por diante.

Nota: O loop for ranged itera automaticamente a matriz do início ao fim. Não precisamos especificar o número de iterações no loop.

Exemplo 2: C ++ Ranged for Loop Usando Vector

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

Resultado

 1 2 3 4 5

Exemplo 3: Declare a coleção dentro do 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; )

Resultado

 1 2 3 4 5

Aqui, declaramos a coleção dentro do próprio loop, ou seja,

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

Essa também é uma maneira válida de usar o forloop com variação e funciona da mesma forma que quando usamos uma matriz ou vetor real.

C ++ Ranged for Loop Best Practices

Nos exemplos acima, declaramos uma variável no forloop para armazenar cada elemento da coleção em cada iteração.

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

No entanto, é melhor escrever o loop for baseado em alcance como este:

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

Observe o uso de &before var. Aqui,

  • int var : num- Copia cada elemento de num para a variável var em cada iteração. Isso não é bom para a memória do computador.
  • int &var : num- Não copia cada elemento de num para var. Em vez disso, acessa os elementos de num diretamente do próprio num. Isso é mais eficiente.

Observação: o &operador é conhecido como operador de referência. Aprenderemos mais sobre isso em ponteiros C ++.

Trabalho de endereço apontando em C ++ variou para loop

Nota: Se não estivermos modificando a matriz / vetor / coleção dentro do loop, é melhor usar a constpalavra - chave na declaração de intervalo.

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

Artigos interessantes...