Uma tabela de hash é usada para construir um conjunto não ordenado, onde os valores são convertidos em índices de tabela de hash para garantir que a inserção de um valor seja sempre atribuída aleatoriamente. O fato é que eles operam bem o suficiente e normalmente dão uma operação de pesquisa de tempo constante. Todas as funções no conjunto não ordenado geralmente requerem um tempo constante o (1). Embora, na pior situação, eles possam levar o tempo linear O (n) com base no algoritmo de hash operacional.
O conjunto não ordenado pode incluir chaves de qualquer tipo, sejam elas predefinidas ou de dados de dados definidos pelo usuário. Mas sempre que declaramos as chaves das estruturas de dados definidas pelo usuário, devemos, portanto, indicar o método de comparação que é usado para comparar as chaves.
Diferença entre conjunto e conjunto não ordenado
Um conjunto é uma coleção ordenada de chaves distintas. Mas um conjunto não ordenado é uma coleção de chaves que podem ser organizadas em qualquer sequência. A implementação do conjunto como uma estrutura de árvore equilibrada torna possível manter a ordem dos componentes. As operações definidas têm uma complexidade do tempo O (log n), mas um conjunto não ordenado tem um O (1). Numerosos métodos são definidos para o conjunto não ordenado. Mas os mais populares são o tamanho e o método vazio para armazenamento, encontrar o valor da chave e inserir e remover para configuração. Somente as teclas distintas são suportadas pelo conjunto não ordenado; Para chaves duplicadas, um multiset não ordenado pode ser empregado.
Funções usadas para conjuntos não ordenados
O conjunto não ordenado possui os seguintes métodos:
A execução de diferentes funções não ordenadas na linguagem C ++ é abordada neste artigo.
Exemplo 1:
O tempo médio de processamento para as funções find (), insert () e ease () é constante. Se a chave não estiver presente no conjunto definido, o método find () fornecerá um iterador à função final (); caso contrário, ele retorna um iterador ao atributo chave. Para adquirir a chave referenciando os valores -chave com o operador *, o iterador atua como um ponteiro para os principais atributos. A seguir, é apresentada uma instância de uma declaração para as funções de find (), insert () e iteração em um conjunto não ordenado.
#incluirIncorporamos o arquivo de cabeçalho no início deste código. Em seguida, entramos no espaço de nome padrão como std. Em seguida, invocamos a função principal (). Dentro desta função, declaramos o conjunto não ordenado. Aqui, usamos um conjunto não ordenado para organizar os elementos dos conjuntos. Passamos a string como o parâmetro da função de conjunto não ordenada. Em seguida, inserimos as diferentes cordas nos conjuntos. Passamos as numerosas cordas como os argumentos da função insert (). Em seguida, especificamos o valor da chave usando a palavra -chave "chave". O método find () é usado na próxima etapa. Esta função é aplicada para encontrar a sequência necessária do conjunto.
Utilizamos o método end () para encerrar as strings. Esta função retorna o iterador sempre que a chave não existe no conjunto. O comando "cout" é aplicado para imprimir a declaração. Então, inicializamos novamente um valor para o atributo "chave". Encontramos o valor de um atributo na string usando a função find () e encerrar a string com a ajuda do método final (). Aplicamos a declaração "cout" para mostrar o resultado. Iteramos por todo o conjunto e imprimimos o conteúdo do conjunto usando a instrução "cout". Usamos o método de conjunto não ordenado e também declaramos o iterador como "eu". O loop "for" é empregado.
Primeiro, inicializamos uma variável e depois utilizamos a função Begin () para iniciar a string especificada. Além disso, definimos a condição do loop. A função final () é chamada. O valor do iterador é incrementado por 1. No final, a declaração "cout" é usada para mostrar o valor do iterador.
Exemplo 2:
Nesse caso, executaremos um código no qual declaramos uma lista de valores diferentes e, em seguida, encontramos todas as duplicatas dessa lista pelo uso da função de conjunto não ordenado.
#incluirAqui, incluímos a biblioteca. Na próxima etapa, utilizamos o espaço de nome padrão como std. Usamos o método print () para mostrar a replicação na matriz definida pelo uso de um conjunto não ordenado. Fornecemos uma matriz e uma variável para atingir o número inteiro como os argumentos do método printDUplicates ().
Agora, declaramos os conjuntos não ordenados para adquirir e salvar as duplicatas. A função de conjunto não ordenada é usada. Passamos o número inteiro como seu parâmetro. Em seguida, utilizamos outra função de conjunto não ordenada para encontrar os elementos duplicados. Aqui, aplicamos o loop "para". Declaramos uma variável do loop "for". Então, especificamos a condição. Em seguida, aumentamos o valor "j". Chamamos a função find () para encontrar o elemento definido na matriz. Passamos o elemento específico como o argumento desta função. Se o item necessário já estiver presente na matriz, inserimos esse item no conjunto duplicado.
Mostramos os valores duplicados da matriz usando a declaração "cout". Declaramos a variável "it" do iterador para o conjunto não ordenado. O loop "for" é aplicado. Então, os métodos iniciantes () e end () são usados dentro do loop "for". Depois disso, chamamos a função principal (). Inicializamos uma variável "a". Em seguida, definimos os elementos para a matriz e essa matriz é armazenada em uma variável "a". Encontramos o tamanho da matriz necessária usando o método sizeof (). Passamos a matriz como o parâmetro desta função.
Dividimos o valor resultante pelo tamanho dos números inteiros. O valor que obtemos depois de dividir é armazenado em uma variável "B". Exibimos os valores duplicados da matriz com a ajuda do método printDuplicate (). No final, empregamos o comando "Return 0".
Exemplo 3:
Um item de dados pode ser adicionado ao recipiente de conjunto não ordenado usando a função da biblioteca de modelos padrão C ++ embutida - a função insert (). Cada item em um conjunto não ordenado tem um valor específico e é adicionado apenas se não estiver disponível no conjunto. Como o contêiner emprega vários métodos de hash, a inserção é realizada automaticamente no ponto em que atende ideal o requisito. Como resultado, o tamanho do contêiner é consideravelmente aprimorado pelo número de itens recuperados.
Parâmetros do método insert ():
O método retorna um par, tendo o par :: configurado pela primeira vez a um iterador referente ao novo item atualizado ou ao componente correspondente já presente no conjunto. Se um novo item de dados for adicionado, o segundo componente :: Segundo no par será ajustado como TRUE; Caso contrário, é especificado como falso se um item idêntico já estiver presente.
O programa a seguir demonstra a função acima mencionada:
#incluirPrimeiro de tudo, integramos os arquivos de cabeçalho necessários. O é responsável pelas funcionalidades de entrada e saída. O arquivo de cabeçalho contém a declaração das cordas. O terceiro mantém todos os conjuntos não ordenados. Utilizamos o espaço de nome padrão como std. Em seguida, começamos a codificação dentro do corpo da função principal () depois de chamar a função principal (). Utilizamos o conjunto não ordenado de strings.
Aqui, definimos os elementos do meu conjunto. Especificamos os dois dias da semana. Agora, indicamos o valor da string que queremos ser inseridos no conjunto necessário. Inserimos essa string usando o método insert (). A declaração "cout" é empregada para mostrar o texto "O conjunto de dias da semana é". Usamos a declaração "cout" mais uma vez antes de entrar no comando "Return 0". Esta declaração "cout" imprime todos os nomes dos dias da semana.
Conclusão
O uso das funções definidas C ++ não ordenadas é abordado neste artigo. Implementamos os vários códigos no software Devc ++, onde utilizamos muitas funções relacionadas aos conjuntos não ordenados. Conjuntos não ordenados são estruturas de dados que podem conter diferentes componentes em qualquer ordem e fornecer um acesso eficiente a itens específicos com base em seu valor. Em primeira instância, utilizamos as múltiplas funções definidas não ordenadas para examinar como o código funciona. Usando o método find (), identificamos um certo elemento no conjunto. Com a ajuda da função final (), terminamos o conjunto não ordenado. Na segunda ilustração, construímos uma matriz contendo vários números inteiros. Os valores repetidos e não repetidos estão incluídos na matriz. Para encontrar os valores duplicados na matriz especificada, aplicamos o método find (). O método insert () foi usado no último exemplo para agregar um valor ao conjunto não ordenado necessário.