Em C ++, o vetor pode ser loopado usando o loop clássico com o subscrito (índice) nos colchetes quadrados. Pode ser loopado usando o range baseado em instrução. Ele pode ser loopado usando a função for_each () incluída na biblioteca de algoritmo.
Conteúdo do artigo
- Looping usando o loop clássico
- Looping usando a estatura baseada em range
- Looping usando a função for_each ()
- Conclusão
Looping usando o loop clássico
Subscrito
Considere o seguinte segmento de código:
vetorA saída é 'C'. Na segunda declaração, após o nome do vetor, VTR, é os suportes quadrados. Dentro dos suportes quadrados está o índice, que também é o subscrito do vetor. A contagem de índice começa de zero. O índice no código é 2, que retorna o terceiro elemento do vetor.
Loop com subscrito
Para fazer loop com subscrito ou iterador, o loop for usado. O loop while-loop ou o fará-while também pode ser usado, mas o loop for mais conveniente. A sintaxe de um loop for:
para (começo_state; while_condition; próximo/anterior)Loop para a frente
O programa a seguir usa um loop for para avançar, um vetor de caracteres (chars), por subscrito:
#incluirA saída é:
A B C D EA biblioteca vetorial deve ser incluída para que a classe vetorial seja usada. Na função principal do C ++, após a criação do vetor é o loop for. Este loop for resumido da seguinte forma: Leia cada elemento do vetor começando do índice, 0; E embora o fim do vetor ainda não tenha sido alcançado, aumente o índice em 1 para ler o próximo elemento.
Os parênteses do loop for têm a lógica do que ler a seguir, enquanto o bloco do loop for faz a leitura e a impressão no terminal (console).
Lançando para a frente e pulando
No loop acima, a próxima declaração nos parênteses é eu++. Isso é o mesmo que:
i = i + 1Com isso, os elementos são lidos um após o outro na direção para a frente. Para ler todos os outros elementos (pulando um elemento a cada vez), o próximo argumento nos parênteses deve ser
i = i + 2; que é o mesmo que i+= 2;O código a seguir lê todos os outros personagens:
vetorA saída é:
ÁSLoop para trás
O código a seguir usa um loop para loop para trás, um vetor de caracteres (chars):
int main ()A saída é:
E D C B AO looping começa com o maior índice (4), que é dado por:
vtr.tamanho ()-1Nesse caso, a função do membro vetorial, size () retorna 5. 1 deve ser subtraído para obter o maior índice de 4 (a contagem do índice começa a partir de 0). Para dar um loop para trás, a declaração anterior nos parênteses agora é "eu-".
Looping para trás e pulando
No loop acima, a declaração anterior é eu-. Isso é o mesmo que:
i = i - 1Com isso, os elementos são lidos um após o outro na direção inversa. Para ler todos os outros elementos (pulando um elemento a cada vez) para trás, a declaração anterior deve ser
i = i - 2; que é o mesmo que i- = 2;O código a seguir lê todos os outros personagens, para trás:
vetorA saída é:
E c apular 'd' e 'b'.
Looping usando uma classe de iterador
Um vetor pode ser loop com um iterador. Existem seis classes de iterador vetorial. Apenas dois são usados aqui. Os nomes dos dois são: iterator e reverse_iterator. Nas ilustrações aqui, o loop for ainda é usado como loop.
Um iterador é um ponteiro elaborado. Para cada iterador, há uma aula da qual os objetos podem ser instanciados. O objeto instanciado é o iterador.
Loop para a frente
O programa a seguir usa um loop for para avançar, um vetor de caracteres (chars), por iterator:
#incluirA saída é:
A B C D EObserve como o objeto iterador, ITER foi declarado. O vetor tem a função de membro começar (). Isso retorna um iterador que aponta para o primeiro elemento do vetor. Há outra função de membro, end () para o vetor. Isso retorna um iterador que aponta logo após o último elemento do vetor. O iterador retornado por End () é muito compatível com o iterador retornado por Begin (). Na verdade, eles são do mesmo tipo, iterador.
Nos parênteses, o estado inicial é:
iter = iter;Os meios que o operando esquerdo, iter, deve começar a digitalização de onde o operando certo, Iter está apontando para.
Este loop com iteradores pode ser resumido da seguinte forma: Leia cada elemento do vetor que começa a partir disso apontado para o ITER; E embora o fim do vetor ainda não tenha sido alcançado, incremente o iterador, iter, para apontar para o próximo elemento para ler o próximo elemento.
O corpo do loop for:
char ch = *iter;O asterisco nesta posição é um operador de indireção. Obtém o valor apontado para, pelo iterador
Lançando para a frente e pulando com o iterador
No loop acima, o próximo argumento é, iter++. Isso é o mesmo que:
iter = iter + 1Plus-um com o iterador, significa apontar para o próximo elemento. Isso não significa, adicione o número inteiro 1 ao iterador. Com isso, os elementos são lidos um após o outro na direção para a frente. Para ler todos os outros elementos (pulando um elemento a cada vez), o próximo argumento deve ser
iter = iter + 2; que é o mesmo que ITER+= 2;O código a seguir lê todos os outros personagens:
vetorA saída é:
ÁSpular 'b' e 'd'.
Loop para trás
O código a seguir usa um loop para loop para trás, um vetor de caracteres (chars), usando iteradores:
int main ()A saída é:
E D C B AO reverse_iterator foi usado aqui. O vetor tem uma função de membro correspondente, rBegin (), que retorna um iterador que aponta para o último elemento do vetor. Há outra função de membro, rend (), que retorna um iterador que aponta pouco antes do primeiro elemento do vetor.
Para fazer um loop para trás, a declaração anterior nos parênteses ainda é ironicamente, “ITER ++”. E a condição enquanto está ironicamente<'.
Loop para trás e pulando
No loop acima, a declaração anterior é, iter++. Isso é o mesmo que
iter = iter + 1Com isso, os elementos são lidos um após o outro na direção inversa. Para ler todos os elementos de pedidos (pulando um elemento de cada vez) para trás, a declaração anterior deve ser
iter = iter + 2; que é o mesmo que ITER+= 2;O código a seguir lê todos os outros personagens para trás:
vetorA saída é:
E c apular 'd' e 'b'.
Looping usando a estatura baseada em range
O range baseado em instrução é uma declaração mais conveniente a ser usada para percorrer uma lista, como um vetor. Não é realmente usado para pular ou loop para trás. A sintaxe é:
para (Init-Statement-Opcional for-wonge-deClaration: for-fotan-inialicializer)Desta vez, existem duas declarações nos parênteses e não três. A primeira declaração é a declaração de uma variável que mantém o próximo elemento no vetor. Esta variável deve ser do mesmo tipo que o tipo de elementos vetoriais. O segundo argumento após o cólon é o nome do vetor.
O código a seguir mostra como ele pode ser usado:
vetorA saída é:
A B C D ELooping usando a função for_each ()
A função for_each () é usada na biblioteca de algoritmo incluída. A sintaxe é:
modeloO primeiro argumento é um iterador que aponta para o primeiro elemento do vetor. O segundo argumento é um iterador que aponta logo após o último elemento do vetor. O terceiro argumento é o nome de uma função, cujo corpo é o que seria no clássico loop for. Esta função possui um parâmetro e é a declaração da variável que manteria o próximo valor do vetor. Tem que ser do mesmo tipo que cada elemento no vetor. Esta função for_each () não é realmente usada para pular ou loop para trás.
O programa a seguir mostra como usar a chamada de função for_each () e uma definição de função associada:
#incluirA saída é:
A B C D EConclusão
Para percorrer um vetor, significa acessar todos os elementos do vetor, do início ao final ou do final ao começo. Os elementos podem ser acessados para leitura ou escrita (mudança de valor) ou ambos.
Em C ++, o vetor pode ser loopizado, usando o loop clássico, com o subscrito (índice) nos colchetes; Ele pode ser loopado usando o range baseado em instrução; Ele também pode ser loopado usando a função for_each () incluída na biblioteca de algoritmo.