Exercícios Resolvidos de Containers e iterators

Ver Teoria

Enunciado

Receba N valores do usuário. Armazene os valores positivos em um vector e os valores negativos em outro vector. Exiba os vectors pro usuário.

Passo 1

Vamos nessa, pessoal!

A questão está pedindo pra gente criar dois vectors e preencher um deles com valores positivos e outro com valores negativos.

O detalhe é que esses valores serão inseridos aleatoriamente pelo usuário. Então, vamos usar um loop para receber todos os valores e uma estrutura i f - e l s e para separar os valores positivos e negativos.

Mas vamos começar escrevendo o cabeçalho da questão, e adicionamos o

Passo 2

Então vamos começar o código dentro da m a i n

Para declarar um vector vazio a gente faz assim:

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

Vamos precisar declarar dois vectors, um para armazenar valores positivos e outro para armazenar valores negativos. Os valores inseridos pelo usuário podem ser qualquer valor real, então esses vectors devem ser do tipo d o u b l e .

Para realizar loop sobre esses vectors vamos precisar e um iterador. Para declarar um iterador a gente faz assim:

v e c t o r < t i p o > ∷ i t e r a t o r   N o m e I t e r a d o r

Mas antes de usar os vectors 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, vamos utilizar uma estrutura i f - e l s e para verificar se o valor é positivo ou negativo.

Na hora de preencher os vectors nós vamos utilizar o método p u s h _ b a c k que vai inserir o valor na última posição do vector.

E prontinho! Vectors preenchidos.

Passo 4

Agora vamos imprimir o conteúdo de cada um dos vectors.

Novamente, vamos utilizar um loop f o r , mas dessa vez vamos usar um iterador. A gente inicializa o iterator utilizando o método b e g i n   e o loop vai crescer de um em um até atingir a posição final do vector, que é dada pelo método 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.

Primeiro fazemos esse processo para o vector V _ p o s i t i v o

E depois fazemos o mesmo para o vector V _ n e g a t i v o

E aí é só rodar o código e ver o resultado.

E prontinho!

Resposta