set stl
Aprenda rapidamente o SET em STL com exemplos simples.
Vamos dar uma olhada em profundidade no contêiner STL - Conjuntos, aqui neste tutorial. Os conjuntos são contêineres associativos com elementos exclusivos em uma ordem específica.
O valor de um elemento do conjunto também é a chave que é usada para acessá-lo. Todos os elementos do conjunto devem ser únicos. Não podemos modificar os elementos do conjunto depois de inseridos. No entanto, podemos inserir ou excluir os elementos.
=> Verifique aqui a série completa de treinamento C ++ GRÁTIS.
O que você aprenderá:
CONFIGURAR em STL
Para implementar o conjunto, precisamos incluir o cabeçalho em nosso programa.
melhor software vm para windows 10
#include
Podemos declarar um conjunto da seguinte forma:
set myset;
Por exemplo,se quisermos um conjunto, meu conjunto de um elemento com tipo inteiro, podemos declarar o conjunto como:
set myset;
Operações no set
O contêiner definido também suporta operações semelhantes, como um mapa que já discutimos. A seguir estão algumas das operações básicas com suporte por conjunto.
- começar : Retorna o iterador para o primeiro elemento do conjunto.
- fim : Retorna o iterador para o elemento que segue o último elemento do conjunto.
- inserir : Insere um novo elemento no conjunto.
A operação de inserção para o conjunto tem três variantes:
-
-
- inserir (elemento): Isso insere diretamente o elemento no conjunto e reordena o conjunto.
- inserir (posição, dica): Aqui, especificamos a posição para inserir o elemento.
- insert (iterator.begin (), iterator.end ()): Nesta variação, podemos inserir diretamente o intervalo no conjunto como um array ou outro conjunto.
-
- apagar : Remove um elemento do conjunto.
- Tamanho : Retorna o tamanho do conjunto.
- tamanho máximo : Retorna o tamanho máximo que o conjunto pode conter.
- vazio : Retorna se o conjunto está vazio.
- Claro : Remove todos os elementos do conjunto.
- achar : Encontra um elemento no conjunto. Se um elemento for encontrado, ele retorna o iterador para esse elemento no conjunto. Se não for encontrado, ele retorna um iterador para o final do conjunto.
A seguir está um programa que demonstra o uso de algumas funções importantes do SET.
#include #include #include using namespace std; int main() { set myset; myset.insert(140); myset.insert(130); myset.insert(160); myset.insert(120); cout<<'
Size of myset: '< Resultado:
Tamanho do myset: 4
O myset definido é: 120 130 140 160
Após inserir 100, o conjunto myset é: 100 120 130 140 160
Após inserir o array arr, o conjunto myset é: 100 110 120 130 140 150 160
Após a remoção de elementos menores que 130, myset: 130 140 150 160

Conforme mostrado na saída acima, criamos um conjunto usando uma função de inserção simples.
Em seguida, inserimos o elemento 100 no conjunto usando outra variante da função de inserção, passando a referência do iterador e o valor do elemento 100. Vemos que, uma vez que a inserção é feita, o conjunto é reordenado e a ordem dos elementos é mantida.
Em seguida, inserimos uma matriz {110,150,150} usando a função de inserção. Se você vir a saída do conjunto exibida após inserir uma matriz, veremos que apenas um valor de 150 é inserido no conjunto. Isso ocorre porque todos os elementos do conjunto são únicos.
como abrir um arquivo .jar com java
Também exibimos o tamanho do conjunto. A seguir, usando a função find, encontramos os elementos que são menores que 130 e, em seguida, chamamos a função erase para remover esses elementos. Em seguida, exibimos o conjunto resultante.
Isso é tudo sobre o contêiner definido. A seguir, discutiremos o multiset que é uma extensão do contêiner do conjunto.
Multiset
Um multiconjunto é um contêiner associativo semelhante ao conjunto em todos os aspectos, exceto por uma diferença, ou seja, vários elementos podem ter o mesmo valor.
A declaração para multiset é a seguinte:
multiset mset;
Um multiset de elementos inteiros pode ser declarado como:
multiset mset;
Várias operações suportadas por multiset são semelhantes às suportadas por set.
Agora discutiremos diretamente um exemplo multiset que demonstra a operação que ele usa.
#include #include #include using namespace std; int main() { multiset myset; myset.insert(11); myset.insert(13); myset.insert(13); myset.insert(10); cout<<'
Size of myset: '< Resultado:
Tamanho do myset: 4
Depois de inserir quatro elementos, o myset multiset é: 10 11 13
13
Após inserir 15, o myset multiset é: 10 11 13 13 15
Após a remoção de elementos menores que 15, myset: 15
A captura de tela da saída é fornecida abaixo:

Conforme mostrado na saída acima, inicialmente inserimos quatro elementos no multiconjunto, dos quais dois são iguais. Mas, ao contrário de um conjunto, esses elementos são inseridos com êxito no multiset. Em seguida, inserimos outro elemento 15 fornecendo a posição por meio de um iterador, que é inserido com sucesso.
Em seguida, encontramos os elementos menores que 15 no multiset e chamamos a função de apagar nesses elementos. Finalmente, exibimos o multiset.
Conjunto não ordenado
Até agora, discutimos conjunto e multiset neste tutorial.
Embora o conjunto seja uma sequência ordenada de chaves exclusivas, temos outro contêiner associativo chamado “conjunto não ordenado”, que é um conjunto de chaves ou elementos armazenados em qualquer ordem. Isso significa que os elementos no conjunto não ordenado são ‘não ordenados’.
Semelhante a um mapa não ordenado, o conjunto não ordenado também é implementado usando uma tabela hash onde as chaves são transformadas em índices da tabela hash. Por causa do uso de uma tabela hash, não é possível manter a ordem dos elementos em contraste com o conjunto que usa uma estrutura de árvore balanceada.
O cabeçalho para implementação de conjunto não ordenado é.
#include
Declaramos um mapa não ordenado do tipo inteiro da seguinte maneira:
Unordered_set uset;
As operações suportadas por unordered_set são semelhantes às suportadas por unordered_map que é discutido em nossos tutoriais no mapa.
Abaixo está um exemplo que demonstra as várias operações em unordered_set.
#include #include using namespace std; int main() { unordered_set uset; unordered_set :: iterator it; for(int i=0;i<5;i++){ uset.insert(i+2); } cout<<'
Size of uset: '< Resultado:
Tamanho do uset: 5
Os elementos no conjunto não ordenado são: 99 39 6 5 26 4 3 13 2
Chave encontrada = 13
umap bucket_count: 11
bucket_size: 2
A captura de tela da saída acima é fornecida abaixo.

Conforme mostrado na saída acima, primeiro inserimos 5 elementos no conjunto não ordenado e, em seguida, inserimos outros 4 elementos que demonstram o uso de variações da função de inserção. Em seguida, exibimos o conteúdo do conjunto não ordenado.
A seguir, usamos a função find para descobrir se a chave = 13 está presente no conjunto não ordenado ou não.
Depois disso, demonstramos mais duas funções ‘bucket_count’ e ‘bucket_size’. Essas funções estão relacionadas à implementação interna do mapa não ordenado.
Este contêiner também suporta as outras funções de iterador e funções como max_size, clear, erase, empty, etc. que são semelhantes a outros contêineres STL.
Conclusão
Com isso, chegamos ao final de nosso tutorial sobre SET em STL.
Esperamos que os tópicos cobertos como parte destes tutoriais de STL ajudem você a entender a STL e seus vários contêineres.
software de backup online para provedores de serviços
=> Leia a popular série de treinamento C ++ aqui.
Leitura recomendada
- Fila prioritária em STL
- Listas em STL
- MAPS em STL
- Pilhas e filas em STL
- Iteradores em STL
- Matrizes em STL
- Cordas, pares e tuplas em STL
- Algoritmos em STL