Exercícios Resolvidos de Containers e iterators

Ver Teoria

Enunciado

Receba N valores. Imprima os valores inseridos de trás pra frente

Passo 1

E aí galera, preparados?!

A questão é bem direta. Ela pede pra gente criar um vector preenchido com valores do usuário, e depois imprima os valores de trás pra frente.

Lembre que a melhor forma de andar de trás pra frente sobre um vector é usando um iterador reverso.

Mas antes, vamos adicionar o cabeçalho do código incluindo a biblioteca vector

Passo 2

Vamos iniciar a m a i n e declarar as variáveis necessárias.

A gente vai precisar de um vector! Pra criar um vector vazio a gente faz assim:

v e c t o r < t i p o > N o m e V e c t o r

Então vamos declarar um vector chamado V . Usaremos o tipo d o u b l e para que o usuário seja capaz de inserir números com alta precisão.

Para imprimir esse vector de trás pra frente vamos precisar de um iterator reverso.

v e c t o r < t i p o > ∷ r e v e r s e _ i t e r a t o r   N o m e I t e r a t o r ;

Vamos criar o iterator reverso r e v _ i t e r que deve ser do tipo d o u b l e , pois o tipo dos iterators deve ser compatível com o tipo dos vectors.

Mas antes de usar o vector, nós vamos precisar receber os valores de usuário. Para isso, vamos criar uma variável v a l o r do tipo d o u b l e que vai receber os valores do usuário. E uma variável inteira N onde o usuário vai informar quantos valores ele pretende inserir.

Show. Isso termina as declarações.

Passo 3

Agora vamos preencher os vetores. Primeiro de tudo, precisamos saber quantos valores serão inseridos. Então pedimos essa informação pro usuário e armazenamos na variável N

Agora vamos preencher!

Vamos iniciar um loop f o r que vai de 0 até antes de N de um em um. A cada iteração vamos receber um valor do usuário e armazenar na variável v a l o r . Em seguida usamos o método p u s h _ b a c k ( ) para preencher o vector.

Passo 4

Agora vamos imprimir o conteúdo do vector em ordem inversa.

Novamente, vamos utilizar um loop f o r , mas dessa vez vamos usar o iterator reverso. A gente inicializa o iterator reverso utilizando o método v b e g i n   que aponta para o fim do vector, e o iterator reverso vai crescer de um em um até atingir a posição inicial do vector, que é dada pelo método r e n d   .

O iterator é um ponteiro para o vector, então, na hora de exibir o conteúdo, é só a gente tratar o iterador como ponteiro e usar o operador * para acessar o conteúdo.

E prontinho. Vamos rodar o código pra ver o resultado:

E é isso! Questão concluída.

Resposta