Exercícios Resolvidos de Containers e iterators

Ver Teoria

Enunciado

Implemente um programa em que obtenha do teclado o tamanho (inteiro) de um vetor, após isso crie um vetor de f l o a t s com o tamanho obtido e então leia do teclado a os números digitados pelo usuário e armazene no novo v e c t o r . Exiba os valores contidos vetor. Use iteradores nos loops.

Passo 1

Vamos lá, pessoal!

A questão pede pra gente criar um vetor com tamanho determinado pelo usuário, e depois preencha esse vetor. A questão traz um detalhe, ela quer que a gente use iterators nos loops. Mas você vai ver que é tranquilo.

Mas antes de começar, vamos iniciar o cabeçalho do código.

Passo 2

Antes de criar o vector que vamos trabalhar precisamos saber qual será o tamanho dele. Então vamos criar uma variável inteira t a m a n h o e pedir que o usuário nos diga qual o tamanho que ele deseja pro vector.

Passo 3

Show de bola. Agora temos tudo que precisamos pra criar nosso vetor. Pra criar um vetor com um tamanho determinado a gente faz assim:

v e c t o r < t i p o > n o m e V e c t o r   t a m a n h o  

O tipo que precisamos é o f l o a t e o tamanho que desejamos está contido na variável tamanho. No código fica assim:

Passo 4

Um detalhe importante nessa questão é que ela pede que a gente use um iterator nos loops. Então vamos declarar um iterator:

n o m e T e m p l a t e < t i p o > ∷ i t e r a t o r   n o m e I t e r a t o r

O template que a gente está usando é o v e c t o r , o tipo do vector que criamos é o f l o a t . Ou seja, a gente vai criar um iterator para vectors do tipo float. Vamos chamar de i t e r

Não se esqueça que um iterator é um tipo especial de ponteiro.

Passo 5

Com tudo no ponto a gente pode preencher o nosso vector com valores inseridos pelo usuário. Pra isso a gente vai utilizar um loop que vai começar do início do vector e vai até a última posição do vector.

Para isso, a variável de iteração do loop vai ser o iterador i t e r , que vai ser iniciado pelo método v e c . b e g i n (   ) , e terá como ponto de parada o método v e c . e n d (   ) . O incremento vai acontecer de um em um:

f o r ( i t e r = v e c . b e g i n     ;   i t e r < v e c . e n d     ;   i t e r + + )

O iterator é um tipo especial de ponteiro. Ou seja, a cada iteração o i t e r tem acesso a um endereço de memória do vector. Então, podemos pedir pro usuário inserir valores e podemos guardar esses valores no endereço apontado por i t e r :

Passo 6

Prontinho. O vector está preenchido. Agora vamos exibir os valores contidos nesse vector. Pra isso vamos fazer um loop muito semelhante ao anterior: O i t e r começa em v e c . b e g i n ( ) e avança de um em um até v e c . e n d (   )

f o r ( i t e r = v e c . b e g i n   ; i t e r < v e c . e n d   ; i t e r + + )

A cada iteração o i t e r terá acesso a um endereço de memória do vector. Nosso objetivo é apenas imprimir cada elemento do vector, então vamos apenas imprimir o conteúdo apontado por i t e r :

E pronto! Podemos finalizar o programa:

Resposta