Partilhar: WhatsApp
aulify
UC UC02839 · T. Desenv. Software

Ficha 01 · C++ moderno fundamentos

auto, templates, STL, lambdas
Versão · Aluno
Tempo · 4 horas
Aluno(a)
Turma
Data

Exercício 1 · auto e range-for

Cria um vector<int> com 10 números. Usa auto em todo o lado possível e range-based for para imprimir, dobrar e somar.

Resposta:

Exercício 2 · Function template

Cria função template T menor(T a, T b) que retorna o menor de dois valores. Testa com int, double e string.

Resposta:

Exercício 3 · Class template Pilha

Cria classe template Pilha<T> com métodos push(T), pop(), top(), size(), empty(). Usa vector<T> internamente. Testa com int e string.

Resposta:

Exercício 4 · STL sort + lambda

Cria vector<pair<string, int>> com 5 (nome, idade). Ordena de duas formas usando lambdas: 1. Por nome (alfabético). 2. Por idade (decrescente).

Resposta:

Exercício 5 · Map e algoritmos

Conta a frequência de palavras numa frase usando map<string, int>. Imprime ordenado por frequência (decrescente).

Resposta:

Exercício 6 · Filter + transform com STL

Dado vector<int> nums{1..20}, usa STL para: 1. Filtrar apenas pares. 2. Elevar ao quadrado. 3. Somar tudo.

Faz sem range-based for — usa copy_if, transform, accumulate.

Resposta:

Exercício 7 · unique_ptr

Cria classe Pessoa com construtor que imprime "Criada" e destructor que imprime "Destruída". Demonstra que unique_ptr apaga automaticamente. Tenta copiar e mostra que dá erro de compilação. Depois usa move.

Resposta:

Exercício 8 · shared_ptr com lista

Cria vector<shared_ptr<Pessoa>> com 3 pessoas. Faz uma cópia do vector e verifica que use_count() é 2 para cada uma. Liberta o segundo vector e mostra que voltam a 1.

Resposta: