Com os três primeiros métodos mencionados acima, as declarações devem ser escritas para realmente fazer o resumo. Com o método acumulado, a função accumulate () faz a soma sem declarações adicionais de soma. Esses quatro métodos são ilustrados neste artigo. Para codificar um vetor em um programa C ++, a biblioteca vetorial é incluída no programa.
Conteúdo do artigo
- Adicionando elementos vetoriais usando o loop for
- Adicionando elementos vetoriais usando a estatura baseada em gama
- Adicionando elementos vetoriais usando a função for_each ()
- Adicionando elementos vetoriais usando a função accumulate ()
- Conclusão
Adicionando elementos vetoriais usando o loop for
Considere o vetor:
vetorPara adicionar todos esses elementos desde o início, uma variável soma, mantendo inicialmente o valor de zero, deve ser declarada da seguinte maneira:
soma flutuante = 0.0;Do índice zero ao último índice, cada valor é adicionado à soma em um loop for. O programa a seguir ilustra o seguinte:
#incluirA saída é 16.5 como esperado. Observe que a biblioteca vetorial foi incluída e o espaço para nome padrão foi usado.
Adicionando elementos vetoriais usando a estatura baseada em gama
Considere o seguinte vetor de números inteiros:
vetorPara adicionar todos esses elementos desde o início, uma variável soma, mantendo inicialmente o valor de zero, deve ser declarada da seguinte maneira:
int sum = 0;Desde o primeiro elemento do vetor até o último elemento, cada valor é agregado à soma no loop for-for-loop baseado em range. A declaração para o composto baseada em gama é semelhante à declaração para o composto acima. No entanto, os parâmetros do loop for do range são diferentes dos do loop clássico (acima).
Existem dois parâmetros nos parênteses do loop for-alcão: o primeiro é uma declaração variável que se refere ao próximo elemento no vetor, começando a partir do primeiro. Ele substitui Vtr [i], do clássico loop acima. O segundo parâmetro é o nome do vetor. A sintaxe da declaração baseada em intervalo, é
para (Init-Statement-Opcional for-wonge-deClaration: for-fotan-inialicializer)O loop for-loop baseado em gama é uma variante do loop clássico; É mais conveniente usar na iteração por listas. A declaração variável está diante do cólon, e o nome do vetor está atrás do cólon. O programa a seguir mostra a instrução FOR-Composto baseada em range em ação:
#incluirA saída é 15. Nota: O nome da variável, var, é a escolha do programador. Nessa posição, refere -se ao próximo elemento (valor) no vetor.
Adicionando elementos vetoriais usando a função for_each ()
A função for_each () está na biblioteca de algoritmo. A sintaxe é:
modeloO primeiro argumento é um iterador que aponta para o início (primeiro elemento) do vetor. O segundo argumento é um iterador que aponta para o fim (logo após o último elemento) do mesmo vetor. O terceiro argumento é apenas o nome da função que tem o código para fazer o resumo. Esta função é um objeto de função.
A função for_each () é usada como uma chamada de função, que enviará cada elemento do vetor, começando da primeira para outra função, f. A função, f fará o que quiser com o elemento em seu corpo de função. Cada elemento do vetor é um argumento para a função, f. O programador define a função, f e pode dar o nome que não seja f (). O parâmetro desta função deve ser do tipo de cada um dos elementos vetoriais (todos os elementos vetoriais são do mesmo tipo). O nome do parâmetro é a escolha do programador. Portanto, a função for_each () chama a função, f () para cada elemento vetorial.
O programa para usar a função for_each () deve começar da seguinte forma:
#incluirAs bibliotecas de vetor e algoritmo estão incluídas. O vetor inicializado e a soma inicializada de zero são declarados. Uma boa definição de função de soma para F, que se segue no programa, pode ser:
void fn (int var)Cada vez que a função, FN é chamada pela função for_each (), o próximo valor do vetor é adicionado à soma. A função principal do C ++ pode ser a seguinte:
int main ()A função for_each () é chamada uma vez da biblioteca de algoritmo. Seu primeiro argumento é um iterador que aponta para o início do vetor; O segundo argumento aponta para o final do vetor; e o terceiro argumento é o nome do objeto de função, que é chamado para cada elemento no vetor. Após o número de chamadas, que correspondem ao número de elementos vetoriais, foram feitos, a próxima declaração na função principal, imprime a soma final.
Adicionando elementos vetoriais usando a função accumulate ()
A sintaxe da função accumulate () da biblioteca numérica é:
modeloCom esta função, não há necessidade de o programador escrever código (declarações) para soma. A função accumulate () faz a soma. Seu primeiro argumento é um iterador apontando para o início do vetor. Seu segundo argumento é um iterador, apontando para o fim do vetor. Seu último argumento é o valor da soma inicial. Deve ser zero para um vetor de ints e 0.0 para um vetor de carros alegóricos (ou duplas). A função retorna a soma.
Vetor de números inteiros
O programa a seguir resume todos os elementos de um vetor de números inteiros:
#incluirA saída é 15; correto!
Vetor de carros alegóricos
O programa a seguir resume todos os elementos de um vetor de carros alegóricos:
#incluirA saída é 16.5; correto!
Problema com a função acumulada
Se o terceiro argumento da função acumulado for o tipo errado, então a soma estaria errada. Por exemplo, se os elementos forem carros alegóricos e o terceiro argumento é 0 (número inteiro), então a soma ignoraria todas as partes decimais dos valores para ter uma soma int. O programa a seguir ilustra o seguinte:
#incluirA saída é 15; errado!
Conclusão
O loop clássico pode ser usado para resumir os elementos de um vetor. O range baseado em instrução pode ser usado para resumir os elementos de um vetor. A função for_each () incluída na biblioteca de algoritmo pode ser usada para resumir os elementos de um vetor. A função accumulate () incluída na biblioteca numérica pode ser usada para resumir os elementos de um vetor. Cuidado com o uso incorreto de seu terceiro argumento.