Biblioteca C ++ - <iterador>
Introdução
É um objeto semelhante a um ponteiro que pode ser incrementado com ++, desreferenciado com * e comparado a outro iterador com! =
Categorias
| categoria | propriedades | expressões válidas | |||
|---|---|---|---|---|---|
| todas as categorias | cópia construtível , cópia atribuível e destrutível |
|
|||
| Pode ser incrementado |
|
||||
| Acesso aleatório | Bidirecional | frente | Entrada | Suporta comparações de igualdade / desigualdade |
|
| Pode ser desreferenciado como um rvalue | *uma a-> m |
||||
| Resultado | Pode ser desreferenciado como um lvalue (apenas para tipos de iteradores mutáveis ) |
* a = t * a ++ = t |
|||
| padrão construtível | X a; X () |
||||
| Multi-passagem: nem o desreferenciamento nem o incremento afetam a desreferenciabilidade | { b = a; *a++; *b; } |
||||
| Pode ser diminuído | --uma uma-- *uma-- |
||||
| Suporta operadores aritméticos + e - | a + n n + a a a - b |
||||
| Suporta comparações de desigualdade ( < , > , <= e > = ) entre iteradores | a <b a> b a <= b a> = b |
||||
| Suporta operações de atribuição composta + = e - = | a + = n a - = n |
||||
| Ele suporta o operador de desreferência de deslocamento ( [] ) | a] | ||||
Funções
| Sr. Não. | Funções e descrição |
|---|---|
| 1 | avançar Ele avança o iterador em posições de n elementos. |
| 2 | distância Ele retorna a distância entre os iteradores. |
| 3 | início É usado para iniciar um iterador. |
| 4 | fim É usado para encerrar um iterador. |
| 5 | anterior É usado para obter o iterador do elemento anterior. |
| 6 | Próximo É usado para obter o iterador para o próximo elemento. |
Geradores de iterador
| Sr. Não. | Geradores de iterador e descrição |
|---|---|
| 1 | back_inserter Ele constrói um iterador de inserção de volta. |
| 2 | insersor Ele constrói o iterador de inserção |
| 3 | make_move_iterator Ele constrói iteradores de movimento. |
Aulas
| Sr. Não. | Classes e descrição |
|---|---|
| 1 | iterador Ele faz a iteração da classe base. |
| 2 | iterator_traits É um traço iterador. |
Iteradores predefinidos
| Sr. Não. | Iteradores predefinidos e descrição |
|---|---|
| 1 | reverse_iterator É um iterador reverso. |
| 2 | move_iterator É um iterador de movimento. |
| 3 | back_insert_iterator É um iterador de inserção posterior. |
| 4 | front_insert_iterator É um iterador de inserção frontal. |
| 5 | insert_iterator É usado para inserir um iterador. |
| 6 | istream_iterator É um iterador de fluxo de entrada. |
| 7 | ostream_iterator É um iterador do fluxo de saída. |
| 8 | istreambuf_iterator É um iterador de buffer de fluxo de entrada. |
| 7 | ostreambuf_iterator É um iterador de buffer de fluxo de saída. |
Tags de categoria
| Sr. Não. | Tags de categoria e descrição |
|---|---|
| 1 | input_iterator_tag Categoria de iterador de entrada. |
| 2 | output_iterator_tag categoria de iterador de saída. |
| 3 | forward_iterator_tag Categoria de iterador de encaminhamento. |
| 4 | bidirectional_iterator_tag Categoria de iterador bidirecional. |
| 5 | random_access_iterator_tag Categoria de iterador de acesso aleatório. |