Biblioteca C ++ - <map>
Introdução ao mapa
O mapa é 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 .
No mapa, os valores-chave geralmente são usados para classificar os elementos. Para dados do mapa, o tipo de chave e valor pode ser diferente e é representado como
typedef pair<const Key, T> value_type;
Mapas são normalmente implementados como árvore de pesquisa binária.
Mapas de tamanho zero também são válidos. Nesse caso, map.begin () e map.end () apontam para o mesmo local.
Definição
Abaixo está a definição de std :: map do arquivo de cabeçalho <map>
template < class Key,
class T,
class Compare = less<Key>,
class Alloc = allocator<pair<const Key,T> >
> class map;
Parâmetros
Key - Tipo de chave.
T - Tipo dos valores mapeados.
Compare - Um predicado binário que recebe duas chaves de elemento como argumentos 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 | key_compare | Compare (terceiro parâmetro do modelo) |
4 | alocator_type | Alloc (quarto parâmetro do modelo) |
5 | value_type | par <const key_type, mapped_type> |
6 | value_compare | Classe de função aninhada para comparar elementos |
7 | referência | alocator_type :: referência |
8 | const_reference | alocator_type :: const_reference |
9 | ponteiro | alocator_type :: ponteiro |
10 | const_pointer | alocator_type :: const_pointer |
11 | iterador | iterador bidirecional para value_type |
12 | const_iterator | iterador bidirecional para const value_type |
13 | reverse_iterator | iterador reverso |
14 | const_reverse_iterator | iterador reverso constante |
15 | tipo de diferença | ptrdiff_t |
16 | Tamanho Tipo | size_t |
Funções de <map>
Abaixo está uma lista de todos os métodos do cabeçalho <map>.
Construtores
Sr. Não. | Método e Descrição |
---|---|
1 | construtor map :: map default Constrói um mapa vazio com zero elementos. |
2 | map :: map range constructor Constrói um mapa com tantos elementos quanto no intervalo do primeiro ao último . |
3 | map :: construtor de cópia de mapa Constrói um mapa com cópia de cada elemento presente no mapa existente. |
4 | construtor map :: map move Constrói um mapa com o conteúdo de outro usando a semântica de movimento. |
5 | map :: construtor de lista de inicializador de mapa Constrói um mapa da lista de inicialização. |
Destruidor
Sr. Não. | Método e Descrição |
---|---|
1 | map :: ~ map Destrói o objeto do mapa desalocando sua memória. |
Funções de membro
Sr. Não. | Método e Descrição |
---|---|
1 | map :: at Retorna uma referência ao valor mapeado associado à chave k . |
2 | map :: begin Retorna um iterador que se refere ao primeiro elemento do mapa. |
3 | map :: cbegin Retorna um iterador constante que se refere ao primeiro elemento do mapa. |
4 | map :: cend Retorna um iterador constante que aponta para o elemento além do final do mapa. |
5 | map :: clear Destrói o mapa removendo todos os elementos e define o tamanho do mapa como zero. |
6 | map :: count Retorna o número de valores mapeados associados à chave k . |
7 | map :: crbegin Retorna um iterador reverso constante que aponta para o último elemento do contêiner i. |
8 | map :: crend Retorna um iterador reverso constante que aponta para o elemento teórico que precede o primeiro elemento no contêiner i. |
9 | map :: emplace Estende o contêiner inserindo um novo elemento. |
10 | map :: emplace_hint hint version Insere um novo elemento em um mapa usando dica como uma posição para o elemento. |
11 | mapa :: vazio Testa se o mapa está vazio ou não. |
12 | map :: end Retorna um iterador que aponta para o elemento anterior ao final do mapa. |
13 | map :: equal_range Retorna um intervalo de elementos que correspondem a uma chave específica. |
14 | mapa :: apagar versão da posição Remove um único elemento do mapa da posição . |
15 | mapa :: apagar versão da posição Remove um único elemento do mapa da posição . |
16 | map :: apagar chave Remove o valor mapeado associado à chave k . |
17 | mapa :: apagar versão do intervalo Remove um intervalo de elemento do mapa. |
18 | mapa :: apagar versão do intervalo Remove um intervalo de elemento do mapa. |
19 | map :: find Encontra um elemento associado à chave k . |
20 | map :: get_allocator Retorna um alocador associado ao mapa. |
21 | map :: inserir um único elemento Estende o contêiner inserindo um novo elemento no mapa. |
22 | map :: inserir versão de dica Estende o contêiner inserindo um novo elemento no mapa. |
23 | mapa :: inserir versão do intervalo Estende o contêiner inserindo novos elementos no mapa. |
24 | map :: insert move hint verstion Estende o mapa inserindo um novo elemento. |
25 | map :: inserir versão da lista de inicializadores Estende o mapa inserindo um novo elemento da lista de inicializadores. |
26 | map :: key_comp Retorna um objeto de função que compara as chaves, que é uma cópia do argumento do construtor deste contêiner comp . |
27 | map :: lower_bound Retorna um iterador apontando para o primeiro elemento que não é menor que a chave k . |
28 | map :: max_size Retorna o número máximo de elementos que podem ser mantidos por mapa. |
29 | map :: operator = copiar versão Atribua novos conteúdos ao mapa substituindo os antigos e modifique o tamanho, se necessário. |
30 | map :: operator = mover versão Mova o conteúdo de um mapa para outro e modifique o tamanho, se necessário. |
31 | map :: operator = versão da lista de inicializador Copie os elementos da lista de inicializadores para o mapa. |
32 | map :: operator [] copiar versão Se a chave k corresponder a um elemento no contêiner, o método retornará uma referência ao elemento. |
33 | 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. |
34 | map :: rbegin Retorna um iterador reverso que aponta para o último elemento do mapa. |
35 | map :: rend Retorna um iterador reverso que aponta para a extremidade reversa do mapa i. |
36 | tamanho do mapa Retorna o número de elementos presentes no mapa. |
37 | map :: swap Troca o conteúdo do mapa com o conteúdo do mapa x. |
38 | map :: upper_bound Retorna um iterador apontando para o primeiro elemento maior que a chave k . |
39 | map :: value_comp Retorna um objeto de função que compara objetos do tipo std :: map :: value_type . |
Funções sobrecarregadas de não membros
Sr. Não. | Método e Descrição |
---|---|
1 | operador == Testa se dois mapas são iguais ou não. |
2 | operador! = Testa se dois mapas são iguais ou não. |
3 | operador < Testa se o primeiro mapa é menor que o outro ou não. |
4 | map :: operator <= Testa se o primeiro mapa é menor ou igual a outro ou não. |
5 | operador> Testa se o primeiro mapa é maior que o outro ou não. |
6 | operador> = Testa se o primeiro mapa é maior ou igual a outro ou não. |
7 | troca() Troca o conteúdo do mapa com o conteúdo do mapa x. |
Introdução ao multimapa
Multimap é uma estrutura de dados semelhante a um dicionário. É uma sequência de pares (chave, valor) , onde vários valores podem ser associados a chaves equivalentes. Geralmente é referido como array associativo .
Em valores-chave multimapa, geralmente usados para classificar os elementos. Para dados multimap, o tipo de chave e valor pode ser diferente e é representado como
typedef pair<const Key, T> value_type;
Multimaps normalmente são implementados como árvore de pesquisa binária.
Multimaps de tamanho zero também são válidos. Nesse caso, multimap.begin () e multimap.end () apontam para o mesmo local.
Definição
Abaixo está a definição de std :: multimap do arquivo de cabeçalho <multimap>
template < class Key,
class T,
class Compare = less<Key>,
class Alloc = allocator<pair<const Key,T> >
> class multimap;
Parâmetros
Key - Tipo de chave.
T - Tipo dos valores mapeados.
Compare - Um predicado binário que recebe duas chaves de elemento como argumentos 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 | key_compare | Compare (terceiro parâmetro do modelo) |
4 | alocator_type | Alloc (quarto parâmetro do modelo) |
5 | value_type | par <const key_type, mapped_type> |
6 | value_compare | Classe de função aninhada para comparar elementos |
7 | referência | alocator_type :: referência |
8 | const_reference | alocator_type :: const_reference |
9 | ponteiro | alocator_type :: ponteiro |
10 | const_pointer | alocator_type :: const_pointer |
11 | iterador | iterador bidirecional para value_type |
12 | const_iterator | iterador bidirecional para const value_type |
13 | reverse_iterator | iterador reverso |
14 | const_reverse_iterator | iterador reverso constante |
15 | tipo de diferença | ptrdiff_t |
16 | Tamanho Tipo | size_t |
Funções de <multimap>
Abaixo está uma lista de todos os métodos do cabeçalho <multimap>.
Construtores
Sr. Não. | Método e Descrição |
---|---|
1 | construtor multimap :: multimap default Constrói um multimapa vazio com zero elementos. |
2 | construtor multimap :: multimap range Constrói um multimapa com tantos elementos quanto na faixa do primeiro ao último . |
3 | multimap :: construtor de cópia multimap Constrói um multimapa com cópia de cada elemento presente no multimapa existente. |
4 | construtor multimap :: multimap move Constrói um multimapa com o conteúdo de outro usando a semântica de movimento. |
5 | construtor de lista de inicializador multimap :: multimap Constrói um multimapa a partir da lista de inicialização. |
Destruidor
Sr. Não. | Método e Descrição |
---|---|
1 | multimapa :: ~ multimapa Destrói o objeto multimapa desalocando sua memória. |
Funções de membro
Sr. Não. | Método e Descrição |
---|---|
1 | multimap :: begin Retorna um iterador que se refere ao primeiro elemento do multimapa. |
2 | multimap :: cbegin Retorna um iterador constante que se refere ao primeiro elemento do multimapa. |
3 | multimap :: cend Retorna um iterador constante que aponta para o elemento além do final do multimapa. |
4 | multimap :: clear Destrói o multimapa removendo todos os elementos e define o tamanho do multimapa como zero. |
5 | multimap :: count Retorna o número de valores multimapped associados à chave k . |
6 | multimap :: crbegin Retorna um iterador reverso constante que aponta para o último elemento do contêiner. |
7 | multimap :: crend Retorna um iterador reverso constante que aponta para o elemento teórico anterior ao primeiro elemento no contêiner. |
8 | multimap :: emplace Estende o contêiner inserindo um novo elemento. |
9 | multimap :: emplace_hint hint version Insere um novo elemento em um multimapa usando dica como uma posição para o elemento. |
10 | multimap :: vazio Testa se o multimapa está vazio ou não. |
11 | multimap :: end Retorna um iterador que aponta para o elemento além do final no multimapa. |
12 | multimap :: equal_range Retorna um intervalo de elementos que correspondem a uma chave específica. |
13 | multimapa :: erase position version Remove um único elemento do multimapa da posição . |
14 | multimapa :: erase position version Remove um único elemento do multimapa da posição . |
15 | multimap :: erase key Remove o valor mapeado associado à chave k . |
16 | multimapa :: apagar versão do intervalo Remove a gama de elementos do multimapa. |
17 | multimapa :: apagar versão do intervalo Remove a gama de elementos do multimapa. |
18 | multimap :: find Encontra um elemento associado à chave k . |
19 | multimap :: get_allocator Retorna um alocador associado a multimap. |
20 | multimap :: inserir elemento único Estende o contêiner inserindo um novo elemento no multimapa. |
21 | multimapa :: inserir versão de dica Estende o contêiner inserindo um novo elemento no multimapa. |
22 | multimapa :: inserir versão do intervalo Estende o contêiner inserindo novos elementos no multimapa. |
23 | multimap :: insert move hint verstion Estende o multimapa inserindo um novo elemento. |
24 | multimap :: inserir versão da lista de inicializadores Estende o multimapa inserindo um novo elemento da lista de inicializadores. |
25 | multimap :: key_comp Retorna um objeto de função que compara as chaves, que é uma cópia do argumento do construtor deste contêiner comp . |
26 | multimapa :: lower_bound Retorna um iterador apontando para o primeiro elemento que não é menor que a chave k . |
27 | multimap :: max_size Retorna o número máximo de elementos que podem ser mantidos por multimap. |
28 | multimapa :: operador = versão de cópia Atribua novos conteúdos ao multimapa substituindo os antigos e modifique o tamanho se necessário. |
29 | multimapa :: operador = mover versão Mova o conteúdo de um multimapa para outro e modifique o tamanho, se necessário. |
30 | multimapa :: operador = versão da lista de inicializador Copie elementos da lista de inicializadores para multimapa. |
31 | multimap :: rbegin Retorna um iterador reverso que aponta para o último elemento do multimapa. |
32 | multimap :: rend Retorna um iterador reverso que aponta para a extremidade reversa do multimapa. |
33 | multimap :: size Retorna o número de elementos presentes no multimapa. |
34 | multimap :: swap Troca o conteúdo do multimapa com o conteúdo do multimapa x. |
35 | multimap :: upper_bound Retorna um iterador apontando para o primeiro elemento maior que a chave k . |
36 | multimap :: value_comp Retorna um objeto de função que compara objetos do tipo std :: multimap :: value_type . |
Funções sobrecarregadas de não membros
Sr. Não. | Método e Descrição |
---|---|
1 | operador == Testa se dois multimaps são iguais ou não. |
2 | operador! = Testa se dois multimaps são iguais ou não. |
3 | operador < Testa se o primeiro multimapa é menor que outro ou não. |
4 | multimapa :: operador <= Testa se o primeiro multimapa é menor ou igual a outro ou não. |
5 | operador> Testa se o primeiro multimapa é maior do que outro ou não. |
6 | operador> = Testa se o primeiro multimapa é maior ou igual a outro ou não. |
7 | troca() Troca o conteúdo do multimapa com o conteúdo do multimapa x. |