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. | |
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 & | operator= (TVector &&o) noexcept |
Operador de atribuição por movimentação. | |
Acesso a Elementos | |
TVector< Item > & | Add (Item a) |
TVector< Item > & | Insert (Item a, int index=0) |
Insere um único elemento na posição indicada. | |
TVector< Item > & | Insert (TVector< Item > &v, int index=0) |
Insere um vetor de itens 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 & | First () |
Item & | Last () |
int | Count () 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
. 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 778 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 895 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. |
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 852 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 982 of file TVector.h.
|
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 879 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 505 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 918 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 826 of file TVector.h.
|
inline |
Adiciona elemento x
ao final (alias de Add).
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. |
Remove todas ocorrências de x
(alias de Remove).
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 468 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 539 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 801 of file TVector.h.
|
static |