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. |