Você está na página 1de 17

Universidade Federal do Rio Grande do Norte

Instituto Metrópole Digital

AULA 05
Linguagem de Programamação I (LP1)

Prof. Msc. Janiheryson Felipe (Felipe)

Natal, RN
2023
OBJETIVOS DESSA AULA

Conhecer algumas estruturas de dados essenciais em C++

Deque
Set
Map
DEQUE - DOUBLE-ENDED QUEUE

Um deque é uma estrutura de dados linear que permite a


inserção e remoção de elementos em ambas as
extremidades da estrutura.
A palavra "deque" é uma abreviação de "double-ended
queue" (fila de pontas duplas).
DEQUE - DOUBLE-ENDED QUEUE

Disponível através da inclusão da biblioteca <deque>


Como trata-se de um template, é necessário indicar o tipo
de dados/objetos que o deque irá armazenar
DEQUE - DOUBLE-ENDED QUEUE
Uma estrutura do tipo deque permite uma variedade de
operações, como empilhar e desempilhar elementos em
ambas as pontas, adicionar ou remover elementos da
frente ou do final da estrutura e percorrer a fila em ambas
as direções.
DEQUE - DOUBLE-ENDED QUEUE
push_front(valor) - adiciona um elemento no início da deque
push_back(valor) - adiciona um elemento no final da deque
pop_front() - remove o elemento no início da deque
pop_back() - remove o elemento no final da deque
size() - retorna o número de elementos na deque
empty() - retorna true se a deque estiver vazia,
front() - retorna o primeiro elemento da deque
back() - retorna o último elemento da deque
at(index) - retorna o elemento na posição especificada pelo
índice
clear() - remove todos os elementos da deque
SET (CONJUNTO)
SET é uma estrutura de dados que armazena um conjunto de
valores únicos e ordenados. Os valores armazenados em um
std::set são organizados automaticamente em ordem
crescente (ou decrescente, se especificado pelo
programador).
SET (CONJUNTO)
O std::set é implementado como
uma árvore binária de busca
balanceada, o que significa que
os elementos são inseridos e
organizados em uma árvore de
forma que a busca, inserção e
remoção de elementos seja feita
de maneira eficiente em relação
ao tempo de execução.
SET (CONJUNTO)

Algumas das principais características do std::set são:


Armazena elementos únicos em ordem crescente ou
decrescente.
Permite a busca, inserção e remoção de elementos de
maneira eficiente (O(log n)).
Oferece uma interface de iteração flexível, permitindo que os
elementos sejam percorridos na ordem em que foram
inseridos ou na ordem crescente ou decrescente.
SET (CONJUNTO)
insert(): insere um elemento no conjunto
erase(): remove um elemento do conjunto
clear(): remove todos os elementos do conjunto
size(): retorna o número de elementos no conjunto
empty(): retorna true se o conjunto estiver vazio,
find(): procura um elemento no conjunto e retorna um
iterador para ele, ou um iterador para o final do conjunto se o
elemento não for encontrado
MAP
Em C++, a classe std::map é uma parte da biblioteca padrão do
C++ que representa uma coleção de pares chave-valor, em que
as chaves são únicas e ordenadas e os valores podem ser
acessados e modificados usando as chaves correspondentes.
Cada elemento em um std::map é um par ordenado de chave-
valor.
MAP
A classe std::map é uma implementação de uma árvore
binária de busca balanceada, o que significa que os elementos
são mantidos em ordem com base em suas chaves e as
operações de inserção, remoção e busca são realizadas em
tempo logarítmico. Isso a torna muito eficiente para lidar com
grandes quantidades de dados.
MAP
Aqui estão alguns conceitos importantes relacionados a std::map:
Chave: um valor único usado para acessar um determinado
elemento no std::map.
Valor: o valor associado a uma chave no std::map.
Par chave-valor: um par ordenado que consiste em uma chave
e um valor associado a ela.
Iterador: um objeto usado para percorrer os elementos do
std::map.
MAP
insert(): insere um par chave-valor no mapa
erase(): remove um elemento do mapa com base na chave
clear(): remove todos os elementos do mapa
size(): retorna o número de elementos no mapa
empty(): retorna true se o mapa estiver vazio, false caso
contrário
find(): procura um elemento no mapa com base na chave e
retorna um iterador para ele, ou um iterador para o final do
mapa se o elemento não for encontrado
EXERCÍCIO 3

Elabore um resumo elencando as


principais características dos
containes (lista, fila, pilha, deque,
vector, set e map). Pesquise e cite
um possível uso para cada tipo de
estrutura.
EXERCÍCIO 4

Escreva um programa em C++ que


leia três notas e o nome de um
aluno e em seguida armazene
esse nome como chave e as notas
como valor em um map. E por fim,
calcule a média das notas dos
alunos.
DÚVIDAS

Você também pode gostar