Como usar o intervalo baseado em loop em C++

Como Usar O Intervalo Baseado Em Loop Em C



A linguagem de programação C++ loop for baseado em intervalo é um recurso relativamente recente que foi introduzido pela primeira vez em C++11. For loops baseados em intervalo executar um loop sobre o intervalo. Eles funcionam com qualquer contêiner que tenha um iterador, incluindo arrays, vetores, mapas, conjuntos e até mesmo tipos definidos pelo usuário que implementam as operações necessárias.

Sintaxe de loop for baseado em intervalo

A loop for baseado em intervalo tem uma sintaxe muito simples. Ele é composto pela variável de loop, o contêiner ou intervalo para iterar e dois pontos.







para ( range_declaration: range_expression ) instrução de loop



range_declaration: declaração de intervalo é a declaração de uma variável com o mesmo tipo dos elementos da expressão de componente de intervalo. Para determinar automaticamente o tipo de componentes em um expressão_intervalo , a palavra-chave auto é usada com frequência.



expressão_intervalo: Toda expressão que representa uma lista de elementos é uma expressão_intervalo .





declaração de loop: O corpo de um loop for consiste em uma ou mais instruções que devem ser repetidas até o final da range_expression.

Métodos para executar loop for baseado em intervalo

Existem três métodos que podem ser usados ​​para loop for baseado em intervalo .



Método 1: usando matrizes

For loop baseado em intervalo pode ser executado usando arrays como este.

#include
usando namespace std;

int principal ( ) {
int numArray [ ] = { 6 , 7 , 8 , 9 , 10 } ;
para ( int n: numArray ) {
cout << n << ' ' ;
}
retornar 0 ;
}

No código acima, um array inteiro chamado numArray foi inicializado. Em seguida, os elementos de numArray foram impressos usando um loop for baseado em intervalo .

Saída

Método 2: Usando Vetores

For loop baseado em intervalo pode ser executado usando vetores como este.

#include
#include
usando namespace std;
int principal ( )
{
intx;
vetor < int > em = { 1 , 2 , 3 , 4 , 5 } ;
para ( intx:v )
{
cout << x << ' ' ;
}
retornar 0 ;
}

No código acima, um vetor chamado em foi inicializado. Aqui, os elementos do vetor v foram impressos usando um loop for baseado em intervalo.

Saída

Método 3: declarar o loop interno da coleção

For loop baseado em intervalo também pode ser declarado dentro do loop. Ele opera de maneira semelhante a uma matriz ou vetor real.

#include

usando namespace std;
int principal ( ) {
para ( int n: { 5 , 10 , quinze , vinte , 25 } ) {
cout << n << ' ' ;
}
retornar 0 ;
}

No código acima, a coleção é declarada dentro do próprio loop e depois impressa.

Saída

Vantagens e Desvantagens do Range Based for Loop

For loop baseado em intervalo tem mais benefícios do que o convencional para loops de várias maneiras, principalmente ao trabalhar com contêineres. Como a variável do loop é definida dentro do loop e o intervalo é declarado explicitamente, isso torna o código muito mais curto e fácil de compreender. Eles também são mais seguros, pois não há necessidade de se preocupar com erros off-by-one ou outros erros de indexação. São mais adaptáveis, pois podem utilizar qualquer recipiente, independentemente do seu tipo ou tamanho. O loop for baseado em intervalo tem vários benefícios, um dos quais é tornar nosso código mais limpo e simples de entender.

For loops baseados em intervalo têm certas restrições, no entanto. Como a variável de loop é uma cópia ou uma referência ao elemento em vez do elemento real, ela não pode ser usada para alterar os elementos do contêiner. Como o intervalo completo é constantemente iterado, não podemos pular nenhum elemento ou iterar apenas uma parte dos dados.

Conclusão

For loop baseado em intervalo é um recurso poderoso e versátil da linguagem de programação C++. Em comparação com os loops for convencionais, eles oferecem segurança e flexibilidade aprimoradas, juntamente com uma abordagem clara e legível para iterar por meio de contêineres e reduzir o código. For loop baseado em intervalo é uma obrigação de aprender para programadores C++.