Conjuntos
📚 Introdução
Conjuntos são uma ferramenta muito útil em programação competitiva, a ideia básica de um conjunto é uma lista que não contém elementos repetidos, ou seja, se você tentar adicionar um elemento que já está no conjunto, ele não será adicionado.
Não é possível acessar o elemento de um conjunto pelo seu índice, porém é possível iterar sobre os elementos de um conjunto e verificar se um valor está presente em um conjunto.
Também não é possível alterar o valor de um elemento de um conjunto, porém é possível adicionar e remover elementos de um conjunto.
🔨 Criando um conjunto
Para criar um conjunto em C++ basta adicionar a biblioteca set e criar uma variável do tipo set conforme o exemplo abaixo:
📥 Inserindo elementos
Para inserir um elemento em um conjunto, basta usar o método insert
:
É importante notar que a complexidade de inserção em um conjunto é O(log n)
, onde n
é o tamanho do conjunto, ou seja, inserir um elemento em um conjunto é mais lento do que inserir um elemento em um vetor, por exemplo.
🔍 Buscando elementos
Para realizar uma busca no set utilizamos o comando find
, ele retorna um ponteiro que aponta para o elemento procurado caso o elemento esteja no conjunto ou para o final dele, caso o elemento procurado não exista, sua complexidade também é O(logn).
🗑️ Deletando elementos
Para deletar um elemento de um conjunto, basta usar o método erase
:
Outros métodos que também devemos conhecer são os:
clear
: Apaga todos os elementos.size
: Retorna a quantidade de elementos.begin
: Retorna um ponteiro para o inicio do setend
: Retorna um ponteiro para o final do set
Por fim, algumas vezes queremos passar por todos os elementos presentes no conjunto e podemos fazer isso utilizando o código abaixo.
É importante saber que quando passarmos pelos elementos, iremos acessar eles de forma ordenada. Logo, no exemplo abaixo o código imprime 3 7 10
.
🧑🏫 Exercícios
Exercício 1581 do Beecrowd, esse é um exercício que é resolvido facilmente com conjuntos.
Exercício 2322 do Beecrowd, que caiu na OBI 2007, esse é um exercício simples que serve para treinar o uso de conjuntos.
Exercício 2410 do Beecrowd, que caiu na OBI 2012.
Exercício 2469 do Beecrowd, que caiu na OBI 2014, esse exercício pode ser resolvido de várias maneiras, mas uma das mais simples é usando um conjunto e uma lista.
Last updated