|
TProcura
Biblioteca em C++ para testes paramétricos de algoritmos, e coleção de algoritmos de procura e otimização
|
#include <TVector.h>
Public Member Functions | |
| TVector & | operator+= (const TVector &o) |
| Concatena outro vetor a este. | |
| TVector & | operator+= (std::initializer_list< Item > init) |
| Adiciona múltiplos elementos ao final do vetor. | |
| TVector< Item > & | operator+= (const char *str)=delete |
| Acrescenta elementos a partir de uma string no formato de lista. | |
Construtores e Destrutor | |
| TVector (int size=0) | |
| Construtor. | |
| TVector (int size, Item const *init) | |
| Constrói um vetor pré-carregado a partir de um array. | |
| virtual | ~TVector () noexcept |
| Destrutor. | |
Construtores e operadores especiais | |
| TVector (const TVector &o) | |
| Construtor de cópia. | |
| TVector & | operator= (const TVector &o) |
| Operador de atribuição por cópia. | |
| TVector (TVector &&o) noexcept | |
| Construtor de movimentação. | |
| TVector (std::initializer_list< Item > init) | |
| Constrói um vetor a partir de uma lista de inicialização. | |
| TVector (const char *str) | |
| Constrói um vetor de inteiros a partir de uma string no formato de lista. | |
| TVector & | operator= (TVector &&o) noexcept |
| Operador de atribuição por movimentação. | |
Acesso a Elementos | |
| TVector< Item > & | Add (Item a) |
| TVector< Item > & | Insert (TVector< Item > &v, int index=0) |
| Insere um vetor de itens na posição indicada. | |
| TVector< Item > & | Insert (Item a, int index=0) |
| Insere um único elemento na posição indicada. | |
| TVector< Item > & | Push (Item a) |
| Item & | Pop () |
| Item & | operator[] (int i) |
| Acesso por índice com auto-expansão. | |
| const Item & | operator[] (int i) const |
| Acesso constante por índice sem modificação de tamanho. | |
| Item * | Data () |
| Acesso direto. | |
| const Item * | Data () const |
| Acesso direto constante. | |
| Item & | First () |
| Item & | Last () |
| int | Count () const |
| virtual bool | Empty () const |
| TVector< Item > & | Count (int value) |
Ajusta o tamanho lógico do vetor para value. | |
| Item & | Random () |
Operações de Conjunto | |
| TVector< Item > & | BeASet () |
| Converte o vetor num conjunto: remove duplicados e ordena. | |
| TVector< Item > & | Union (const TVector< Item > &v) |
| Realiza a união deste conjunto com outro. | |
| TVector< Item > & | Intersection (const TVector< Item > &v) |
| Interseção deste conjunto com outro. | |
| TVector< Item > & | Difference (const TVector< Item > &v) |
| Diferença deste conjunto em relação a outro. | |
| bool | Equal (const TVector< Item > &v) const |
| Verifica se dois vetores-conjunto são iguais. | |
| bool | Contained (const TVector< Item > &v) const |
| Verifica se este conjunto está contido no outro. | |
Algoritmos e Modificadores | |
| TVector< Item > & | Delete (int i) |
Remove o elemento na posição i deslocando os seguintes. | |
| TVector< Item > & | Remove (Item const &i) |
| Remove todas as ocorrências de um dado elemento. | |
| int | Find (Item &i, bool binary=false, int left=0, int right=-1) |
| Procura um elemento no vetor. | |
| TVector< Item > & | Replace (Item const &iold, Item const &inew) |
| Substitui todas as ocorrências de um valor antigo por um novo. | |
| TVector< Item > & | Sort (TVector< int > *idxvect=nullptr) |
| Ordena todo o vetor, opcionalmente devolvendo índices ordenados. | |
| void | Sort (int start, int end=-1) |
| Ordena um subintervalo [start,end] do vetor. | |
| TVector< Item > & | RandomOrder () |
| Coloca os elementos em ordem aleatória (Fisher–Yates shuffle). | |
| TVector< Item > & | Invert () |
| Inverte a ordem dos elementos no vetor. | |
| TVector< Item > & | Reset (Item const &i) |
| Preenche todo o vetor com um mesmo valor. | |
| int | Distance (TVector< Item > &v, int type=0) |
| Calcula várias métricas de “distância” entre vetores. | |
Iteradores | |
| Item * | begin () noexcept |
| Item * | end () noexcept |
| const Item * | begin () const noexcept |
| const Item * | end () const noexcept |
Static Public Attributes | |
| static Item | erro |
| Valor retornado em casos de acesso inválido. | |
Operadores Adicionais | |
| TVector< Item > & | operator+= (const Item &x) |
| TVector< Item > & | operator-= (const Item &x) |
| TVector< Item > | operator+ (TVector< Item > a, const TVector< Item > &b) |
| bool | operator== (const TVector< Item > &a, const TVector< Item > &b) |
| bool | operator!= (const TVector< Item > &a, const TVector< Item > &b) |
Constrói um vetor pré-carregado a partir de um array.
Construtor com inicialização de elementos a partir de init.
| size | Número de elementos a copiar de init. |
| init | Ponteiro para o array de origem. |
size > 0, redimensiona a capacidade via Size().init para o vetor interno.count para size. Constrói um vetor de inteiros a partir de uma string no formato de lista.
| str | String com a lista de inteiros ou intervalos. |
Sintaxe suportada (sem espaços):
Exemplos:
Converte o vetor num conjunto: remove duplicados e ordena.
Remove duplicados e ordena os elementos.
count para o novo número de elementos. Definition at line 845 of file TVector.h.
|
inlinenoexcept |
|
inlinenoexcept |
Verifica se este conjunto está contido no outro.
Verifica se este conjunto está contido em v (ordenados).
| other | Conjunto suposto “contedor” (ordenado). |
other. Definition at line 962 of file TVector.h.
|
inline |
Ajusta o tamanho lógico do vetor para value.
Realoca o buffer interno caso value exceda a capacidade atual. Os novos elementos entre a capacidade antiga e value não são inicializados.
| value | Novo número de elementos do vetor. |
|
inline |
|
inline |
| TVector< Item > & TVector< Item >::Difference | ( | const TVector< Item > & | other | ) |
Diferença deste conjunto em relação a outro.
Diferença com v (vetores em conjunto).
| other | Conjunto cujos elementos serão subtraídos. |
Definition at line 919 of file TVector.h.
Calcula várias métricas de “distância” entre vetores.
Calcula a distância entre este vetor e v.
| type | Tipo de distância:
|
| other | Outro vetor para comparação. |
| type | Tipo de métrica:
|
Definition at line 1048 of file TVector.h.
|
inlinevirtual |
|
inlinenoexcept |
|
inlinenoexcept |
Verifica se dois vetores-conjunto são iguais.
Verifica igualdade com v (vetores em conjunto e ordenados).
| other | Outro vetor a comparar (deve estar ordenado e sem duplicados). |
Definition at line 946 of file TVector.h.
| int TVector< Item >::Find | ( | Item & | i, |
| bool | binary = false, |
||
| int | left = 0, |
||
| int | right = -1 |
||
| ) |
Procura um elemento no vetor.
Procura i; se binary=true faz busca binária em [left,right].
| i | Referência ao item a procurar. |
| binary | Se true, faz busca binária (vetor deve estar ordenado). |
| left | Índice inicial da busca binária (opcional). |
| right | Índice final da busca binária (opcional). |
Definition at line 576 of file TVector.h.
|
inline |
| TVector< Item > & TVector< Item >::Insert | ( | TVector< Item > & | src, |
| int | index = 0 |
||
| ) |
Insere um vetor de itens na posição indicada.
Insere todos os elementos de v começando na posição index.
| src | Vetor cujos elementos serão inseridos. |
| index | Índice onde começa a inserção (defaults to end if <0). |
Definition at line 985 of file TVector.h.
| TVector< Item > & TVector< Item >::Intersection | ( | const TVector< Item > & | other | ) |
Interseção deste conjunto com outro.
Interseção com v (vetores em conjunto).
| other | Conjunto contra o qual intersectar (ordenado). |
Definition at line 893 of file TVector.h.
|
inline |
Acrescenta elementos a partir de uma string no formato de lista.
| str | String com a lista de inteiros ou intervalos. |
Concatena outro vetor a este.
Adiciona todos os elementos de o no final deste vetor.
| o | Vetor cujos elementos serão adicionados. |
Adiciona todos os elementos de o no final do vetor atual.
| o | Vetor cujos elementos serão adicionados. |
Definition at line 517 of file TVector.h.
| Item & TVector< Item >::operator[] | ( | int | i | ) |
Acesso por índice com auto-expansão.
Acesso por índice com auto-expansão.
Se i é maior ou igual à capacidade interna (sz), realoca o buffer para size = 2 × (i+1). Se i é maior ou igual ao número de elementos (count), ajusta count = i+1.
| i | Índice do elemento a aceder (deve ser ≥ 0). |
v[i]. Definition at line 539 of file TVector.h.
| const Item & TVector< Item >::operator[] | ( | int | i | ) | const |
Acesso constante por índice sem modificação de tamanho.
Acesso constante por índice sem modificação de tamanho.
Se i é inválido (< 0 ou ≥ count), retorna erro.
| i | Índice do elemento (0 ≤ i < count). |
v[i] ou TVector<Item>::erro.
|
inline |
|
inline |
| void TVector< Item >::Sort | ( | int | start, |
| int | end = -1 |
||
| ) |
Ordena todo o vetor, opcionalmente devolvendo índices ordenados.
Ordena e, opcionalmente, preenche vetor de índices idxvect.
| idxvect | Se não nulo, recebe um vetor de índices ordenados em vez de ordenar os elementos. |
Definition at line 606 of file TVector.h.
Realiza a união deste conjunto com outro.
União com v (supõe vetores já em forma de conjunto).
| other | Conjunto a unir (deve estar ordenado e sem duplicados). |
Definition at line 868 of file TVector.h.
|
static |