Biblioteca C ++ - <unordered_map>

Introdução ao unordered_map

O mapa não ordenado é uma estrutura de dados semelhante a um dicionário. É uma sequência de par (chave, valor), em que apenas um valor único é associado a cada chave exclusiva. Geralmente é referido como array associativo . Ele permite a recuperação rápida de elementos individuais com base em suas chaves. Ele também implementa o operador de acesso direto (operador subscrito []) que permite o acesso direto do valor mapeado usando seu valor-chave como argumento.

O mapa não ordenado não classifica seu elemento em nenhuma ordem específica com relação a seus valores chave ou mapeados, em vez disso, organiza em depósitos dependendo de seus valores de hash para permitir acesso rápido a elementos individuais diretamente por seus valores de chave.

O mapa não ordenado tem um desempenho melhor do que o mapa ao acessar elementos individuais por meio de suas chaves. Mas para iteração de alcance, seu desempenho é consideravelmente baixo.

Definição

Abaixo está a definição de std :: unordered_map do arquivo de cabeçalho <unordered_map>

template < class Key,
           class T,
           class Hash = hash<Key>,
           class Pred = equal_to<Key>,
           class Alloc = allocator< pair<const Key,T> >
           > class unordered_map;

Parâmetros

  • Key - Tipo de chave.

  • T - Tipo dos valores mapeados.

  • Hash- Um tipo de objeto de função unário que recebe um objeto do tipo chave como argumento e retorna um valor único do tipo size_t com base nele.

  • Pred- Um predicado binário que contém dois argumentos do tipo chave e retorna um bool.

  • Alloc - Tipo de objeto alocador.

  • T pode ser substituído por qualquer outro tipo de dados, incluindo tipo definido pelo usuário.

Tipos de membros

Os seguintes tipos de membro podem ser usados ​​como parâmetros ou tipo de retorno por funções de membro.

Sr. Não. Tipos de membros Definição
1 Tipo de chave Chave (primeiro parâmetro do modelo)
2 mapped_type T (segundo parâmetro do modelo)
3 value_type par <const key_type, mapped_type>
4 hasher O terceiro parâmetro do modelo (o padrão é: hash <key_type>)
5 key_equal O quarto parâmetro do modelo (o padrão é: equal_to <key_type>)
6 alocator_type Alloc (quinto parâmetro do modelo)
7 referência value_type &
8 const_reference const value_type &
9 ponteiro alocator_traits <Alloc> :: ponteiro
10 const_pointer alocator_traits <Alloc> :: const_pointer
11 iterador Um iterador direto para value_type value_type
12 const_iterator Um iterador direto para const value_type value_type
13 local_iterator Um iterador de encaminhamento para value_type
14 const_local_iterator Um iterador direto para const value_type
15 tipo de diferença ptrdiff_t
16 Tamanho Tipo size_t

Funções de <mapa não ordenado>

Abaixo está uma lista de todos os métodos do cabeçalho <unordered_map>.

Construtores

Sr. Não. Método e Descrição
1 construtor padrão unordered_map :: unordered_map

Constrói um unordered_map vazio com zero elementos.

2 construtor de cópia unordered_map :: unordered_map

Constrói um unordered_map com cópia de cada elemento presente no unordered_map existente.

3 construtor de movimento unordered_map :: unordered_map

Constrói um unordered_map com o conteúdo de outro usando a semântica de movimento.

4 construtor de intervalo unordered_map :: unordered_map

Constrói um unordered_map com tantos elementos quanto no intervalo do primeiro ao último .

5 construtor unordered_map :: unordered_map initializer_list

Constrói um unordered_map da lista de inicialização.

Destruidor

Sr. Não. Método e Descrição
1 unordered_map :: ~ unordered_map

Destrói o objeto unordered_map desalocando sua memória.

Funções de membro

Sr. Não. Método e Descrição
1 unordered_map :: em

Retorna uma referência ao valor mapeado associado à chave k .

2 unordered_map :: begin container iterator

Retorna um iterador que se refere ao primeiro elemento do mapa.

3 unordered_map :: begin bucket iterator

Retorna um iterador apontando para o primeiro elemento em um de seus depósitos.

4 unordered_map :: bucket

Retorna o número do balde onde o elemento com a chave k está localizado.

5 unordered_map :: bucket_count

Retorna o número de depósitos no contêiner unordered_map.

6 unordered_map :: bucket_size

Retorna o número de elementos presentes no enésimo bloco.

7 unordered_map :: cbegin container iterator

Retorna um iterador constante que se refere ao primeiro elemento do unordered_map.

8 unordered_map :: cbegin bucket iterator

Retorna um iterador constante apontando para o primeiro elemento em um de seus depósitos.

9 unordered_map :: cend container iterator

Retorna um iterador constante que aponta para o elemento além do final do unordered_map.

10 unordered_map :: cend bucket iterator

Retorna um iterador constante que aponta para o elemento além do final em um de seus depósitos.

11 unordered_map :: clear

Destrói o unordered_map removendo todos os elementos e define o tamanho de unordered_map para zero .

12 unordered_map :: count

Retorna o número de valores mapeados associados à chave k .

13 unordered_map :: emplace

Estende o contêiner inserindo um novo elemento.

14 unordered_map :: emplace_hint

Insere um novo elemento em unordered_map usando hint como uma posição para o elemento.

15 unordered_map :: vazio

Testa se unordered_map está vazio ou não.

16 unordered_map :: end container iterator

Retorna um iterador que aponta para o elemento além do fim no unordered_map.

17 unordered_map :: end bucket iterator

Retorna um iterador que aponta para o elemento além do final em um de seus depósitos.

18 unordered_map :: equal

Retorna um intervalo de elementos que correspondem a uma chave específica.

19 unordered_map :: erase position version

Remove um único elemento do unordered_map da posição .

20 unordered_map :: erase key version

Remove o valor mapeado associado à chave k .

21 unordered_map :: erase range version

Remove o intervalo do elemento do unordered_map.

22 unordered_map :: find

Encontra um elemento associado à chave k .

23 unordered_map :: get_allocator

Retorna um alocador associado a unordered_map.

24 unordered_map :: hash_function

Calcula o objeto de função hash usado pelo contêiner unordered_map.

25 unordered_map :: inserir

Estende o contêiner inserindo um novo elemento em unordered_map.

26 unordered_map :: inserir versão de movimento

Estende o contêiner inserindo um novo elemento em unordered_map.

27 unordered_map :: inserir versão da dica

Estende o conteúdo ao inserir um novo elemento em unordered_map.

28 unordered_map :: inserir mover e dica versão

Estende unordered_map inserindo um novo elemento.

29 unordered_map :: inserir versão do intervalo

Estende o contêiner inserindo novos elementos no unordered_map.

30 unordered_map :: inserir versão initializer_list

Estende o mapa inserindo um novo elemento da lista de inicializadores.

31 unordered_map :: key_eq

Retorna a função que compara as chaves de igualdade.

32 unordered_map :: load_factor

Retorna o fator de carga atual do contêiner unordered_map.

33 unordered_map :: max_bucket_count

Retorna o número máximo de depósitos que o contêiner unordered_map pode ter.

34 unordered_map :: max_load_factor obter versão

Retorna o fator de carga máximo atual para o contêiner unordered_map.

35 unordered_map :: max_load_factor definir versão

Atribui um novo fator de carga para o contêiner unordered_map.

36 unordered_map :: max_size

Retorna o número máximo de elementos que podem ser mantidos por unordered_map.

37 unordered_map :: operator = copiar versão

Atribui novos conteúdos ao unordered_map substituindo os antigos e modifica o tamanho, se necessário.

38 unordered_map :: operator = mover versão

Mova o conteúdo de um unordered_map para outro e modifique o tamanho, se necessário.

39 unordered_map :: operator = initializer_list version

Copie os elementos da lista de inicializadores para unordered_map.

40 unordered_map :: operator []

Se a chave k corresponder a um elemento no contêiner, o método retornará uma referência ao elemento.

41 unordered_map :: operator [] mover versão

Se a chave k corresponder a um elemento no contêiner, o método retornará uma referência ao elemento.

42 unordered_map :: rehash

Define o número de depósitos no contêiner para n ou mais.

43 unordered_map :: reserve

Define o número de depósitos no contêiner como o mais apropriado para conter pelo menos n elementos.

44 unordered_map :: size

Retorna o número de elementos presentes no unordered_map.

45 unordered_map :: swap

Troca o conteúdo do primeiro unordered_map com outro.

Funções sobrecarregadas de não membros

Sr. Não. Método e Descrição
1 unordered_map :: operator ==

Testa se dois unordered_maps são iguais ou não.

2 unordered_map :: operator! =

Testa se dois unordered_maps são iguais ou não.

3 unordered_map :: swap

Troca o conteúdo do primeiro unordered_map com outro.

Introdução ao unordered_multimap

Unordered_multimap é uma estrutura de dados semelhante a um dicionário. É uma sequência de pares (chave, valor), onde diferentes elementos podem ter chaves equivalentes. Elementos com chaves equivalentes são agrupados no mesmo intervalo e de forma que um iterador equal_range possa iterar por todos eles.

Unordered_multimap não classifica seu elemento em nenhuma ordem particular com relação a sua chave ou valores mapeados, em vez disso, organiza em intervalos dependendo de seus valores de hash para permitir acesso rápido a elementos individuais diretamente por seus valores de chave.

Definição

Abaixo está a definição de std :: unordered_multimap do arquivo de cabeçalho <unordered_map>

template < class Key, 
           class T,
           class Hash = hash<Key>,
           class Pred = equal_to<Key>,
           class Alloc = allocator< pair<const Key,T> >
           > class unordered_multimap;

Parâmetros

  • Key - Tipo de chave.

  • T - Tipo dos valores mapeados.

  • Hash- Um tipo de objeto de função unário que recebe um objeto do tipo chave como argumento e retorna um valor único do tipo size_t com base nele.

  • Pred- Um predicado binário que contém dois argumentos do tipo chave e retorna um bool.

  • Alloc - Tipo de objeto alocador.

    T pode ser substituído por qualquer outro tipo de dados, incluindo tipo definido pelo usuário.

Tipos de membros

Os seguintes tipos de membro podem ser usados ​​como parâmetros ou tipo de retorno por funções de membro.

Sr. Não. Tipos de membros Definição
1 Tipo de chave Chave (primeiro parâmetro do modelo)
2 mapped_type T (segundo parâmetro do modelo)
3 value_type par <const key_type, mapped_type>
4 hasher O terceiro parâmetro do modelo (o padrão é: hash <key_type>)
5 key_equal O quarto parâmetro do modelo (o padrão é: equal_to <key_type>)
6 alocator_type Alloc (quinto parâmetro do modelo)
7 referência value_type &
8 const_reference const value_type &
9 ponteiro alocator_traits <Alloc> :: ponteiro
10 const_pointer alocator_traits <Alloc> :: const_pointer
11 iterador Um iterador direto para value_type value_type
12 const_iterator Um iterador direto para const value_type value_type
13 local_iterator Um iterador de encaminhamento para value_type
14 const_local_iterator Um iterador direto para const value_type
15 tipo de diferença ptrdiff_t
16 Tamanho Tipo size_t

Funções de <unordered_multimap>

Abaixo está uma lista de todos os métodos do cabeçalho <unordered_map>.

Construtores

Sr. Não. Método e Descrição
1 construtor padrão unordered_multimap :: unordered_multimap ()

Constrói um unordered_multimap vazio com zero elementos.

2 construtor de cópia unordered_multimap :: unordered_multimap ()

Constrói um unordered_multimap com cópia de cada elemento presente no unordered_multimap existente.

3 construtor de movimento unordered_multimap :: unordered_multimap ()

Constrói um unordered_multimap com o conteúdo de outro usando a semântica de movimento.

4 construtor de intervalo unordered_multimap :: unordered_multimap ()

Constrói um unordered_multimap com tantos elementos quanto no intervalo do primeiro ao último .

5 construtor unordered_multimap :: unordered_multimap () initializer_list

Constrói um unordered_multimap da lista de inicialização.

Destruidor

Sr. Não. Método e Descrição
1 unordered_multimap :: ~ unordered_multimap ()

Destrói o objeto unordered_multimap ao desalocar sua memória.

Funções de membro

Sr. Não. Método e Descrição
1 unordered_multimap :: begin () iterador de contêiner

Retorna um iterador que se refere ao primeiro elemento do unordered_mulitmap.

2 unordered_multimap :: begin () iterador de balde

Retorna um iterador apontando para o primeiro elemento em um de seus depósitos.

3 unordered_multimap :: bucket ()

Retorna o número do balde onde o elemento com a chave k está localizado.

4 unordered_multimap :: bucket_count ()

Retorna o número de depósitos presentes no contêiner unordered_multimap.

5 unordered_multimap :: bucket_size ()

Retorna o número de elementos presentes no enésimo bloco.

6 unordered_multimap :: cbegin () iterador de contêiner

Retorna um iterador constante que se refere ao primeiro elemento do unordered_multimap.

7 unordered_multimap :: cbegin () iterador de balde

Retorna um iterador constante apontando para o primeiro elemento em um de seus depósitos.

8 unordered_multimap :: cend () iterador de contêiner

Retorna um iterador constante que aponta para o elemento além do final do unordered_multimap.

9 unordered_multimap :: cend () iterador de balde

Retorna um iterador constante que aponta para o elemento além do final em um de seus depósitos.

10 unordered_multimap :: clear ()

Destrói o unordered_multimap removendo todos os elementos e define o tamanho de unordered_multimap para zero .

11 unordered_multimap :: count ()

Retorna o número de valores mapeados associados à chave k .

12 unordered_multimap :: emplace ()

Estende o contêiner inserindo um novo elemento.

13 unordered_multimap :: emplace_hint ()

Insere um novo elemento em um unordered_multimap usando hint como uma posição para o elemento.

14 unordered_multimap :: empty ()

Testa se unordered_multimap está vazio ou não.

15 unordered_multimap :: end () iterador de contêiner

Retorna um iterador que aponta para o elemento além do fim no unordered_multimap.

16 unordered_multimap :: end () iterador de balde

Retorna um iterador que aponta para o elemento além do final em um de seus depósitos.

17 unordered_multimap :: equal_range ()

Retorna um intervalo de elementos que correspondem a uma chave específica.

18 unordered_multimap :: erase () position version version

Remove um único elemento do unordered_multimap da posição .

19 versão da chave unordered_multimap :: erase ()

Remove o valor mapeado associado à chave k .

20 versão do intervalo unordered_multimap :: erase ()

Remove o intervalo do elemento do unordered_multimap.

21 unordered_multimap :: find ()

Encontra um elemento associado à chave k .

22 unordered_multimap :: get_allocator ()

Retorna um alocador associado a unordered_multimap.

23 unordered_multimap :: hash_function ()

Calcula o objeto de função hash usado pelo contêiner unordered_multimap.

24 unordered_multimap :: insert () value version

Estende o contêiner inserindo um novo elemento em unordered_multimap.

25 unordered_multimap :: insert () mover versão

Estende unordered_multimap inserindo um novo elemento.

26 unordered_multimap :: insert () hint version

Estende o contêiner inserindo um novo elemento em unordered_multimap.

27 unordered_multimap :: insert () hint mover versão

Estende o contêiner inserindo um novo elemento em unordered_multimap usando a semântica de movimentação.

28 unordered_multimap :: insert () versão do intervalo

Estende o contêiner inserindo novos elementos no unordered_multimap.

29 unordered_multimap :: insert () initializer_list version

Estende unordered_multimap inserindo um novo elemento da lista de inicializadores.

30 unordered_multimap :: key_eq ()

Retorna a função que compara as chaves de igualdade.

31 unordered_multimap :: load_factor ()

Retorna o fator de carga atual do contêiner unordered_multimap.

32 unordered_multimap :: max_bucket_count ()

Retorna o número máximo de depósitos que o contêiner unordered_multimap pode ter.

33 unordered_multimap :: max_load_factor () obter versão

Retorna o fator de carga máximo atual para o contêiner unordered_multimap.

34 unordered_multimap :: max_load_factor () definir versão

Atribui um novo fator de carga para o contêiner unordered_multimap.

35 unordered_multimap :: max_size ()

Retorna o número máximo de elementos que podem ser mantidos por unordered_multimap.

36 unordered_multimap :: operator = () copiar versão

Atribui novos conteúdos ao unordered_multimap substituindo os antigos e modifica o tamanho, se necessário.

37 unordered_multimap :: operator = () mover versão

Mova o conteúdo de um unordered_multimap para outro e modifique o tamanho, se necessário.

38 unordered_multimap :: operator = () initializer_list version

Copie os elementos da lista de inicializadores para unordered_multimap.

39 unordered_multimap :: rehash ()

Define o número de depósitos no contêiner para n ou mais.

40 unordered_multimap :: reserve ()

Define o número de depósitos no contêiner como o mais apropriado para conter pelo menos n elementos.

41 unordered_multimap :: size ()

Retorna o número de elementos presentes no unordered_multimap.

42 unordered_multimap :: swap ()

Troca o conteúdo do primeiro unordered_multimap com outro.

Funções sobrecarregadas de não membros

Sr. Não. Método e Descrição
1 unordered_multimap :: operator == ()

Testa se dois unordered_multimaps são iguais ou não.

2 unordered_multimap :: operator! = ()

Testa se dois unordered_multimaps são iguais ou não.

3 unordered_multimap :: swap ()

Troca o conteúdo do primeiro unordered_multimap com outro.