#include <bitArray.H>
Public Types | |
| using | Item_Type = unsigned char |
Public Member Functions | |
| BitArray (const size_t dim=0) | |
| void | reserve (size_t dim) |
| size_t | size () const noexcept |
| Retorna la dimensión del arreglo de bits. | |
| void | set_size (const size_t sz) |
| Reajusta la dimensión del arreglo. | |
| BitProxy | operator[] (const size_t i) const noexcept |
| BitProxy | operator[] (const size_t i) noexcept |
| int | read_bit_ne (const size_t i) const noexcept |
| int | read_bit (const size_t i) const |
| int | operator() (const size_t i) const |
| void | write_bit (const size_t i, const unsigned int value) |
| int | read (const size_t i) const |
| void | write (const size_t i, const unsigned int value) |
| int | fast_read (const size_t i) const noexcept |
| void | fast_write (const size_t i, const unsigned int value) |
| void | push (const unsigned int value) |
| Inserta al final del arreglo el valor value. | |
| void | pop () |
| Elimina el último bit del arreglo. | |
| void | empty () noexcept |
| Elimina todos los bits insertados. | |
| BitArray (const BitArray &array) | |
| void | swap (BitArray &array) noexcept |
| BitArray (BitArray &&array) noexcept | |
| BitArray & | operator= (BitArray &&array) noexcept |
| DynList< char > | bits_list () |
| Lo convierte a una lista. | |
| BitArray & | operator= (const BitArray &array) |
| void | save (std::ostream &output) |
| void | load (std::istream &input) |
| BitArray (std::ifstream &input) | |
| void | save_in_array_of_chars (const string &name, std::ostream &output) |
| void | load_from_array_of_chars (const unsigned char str[], const size_t num_bits) |
| void | left_shift (const size_t n=1) noexcept |
| void | right_shift (const size_t n=1) noexcept |
| void | dyn_left_shift (const size_t n=1) |
| void | dyn_right_shift (const size_t n=1) |
| void | circular_left_shift (const size_t n=1) noexcept |
| void | circular_right_shift (const size_t n=1) noexcept |
| template<typename T > | |
| void | set_num (T n) |
| void | set_num (const char &c) |
| void | set_num (const short &c) |
| void | set_num (const int &c) |
| void | set_num (const long &c) |
| long | get_num () noexcept |
| void | set_bit_str (const std::string &str) |
| std::string | get_bit_str () const |
| BitArray (const unsigned char str[], const size_t num_bits) | |
| BitArray & | operator|= (const BitArray &rhs) |
| BitArray & | operator&= (const BitArray &rhs) |
| template<class Operation > | |
| bool | traverse (Operation &operation) const noexcept(noexcept(operation)) |
| template<class Operation > | |
| bool | traverse (Operation &operation) noexcept(noexcept(operation)) |
| template<class Operation > | |
| bool | traverse (Operation &&operation=Operation()) const noexcept(noexcept(operation)) |
| template<class Operation > | |
| bool | traverse (Operation &&operation=Operation()) noexcept(noexcept(operation)) |
| Functional_Methods (unsigned short) | |
| Generic_Items (unsigned char) | |
| STL_ALEPH_ITERATOR (BitArray) | |
Friends | |
| ostream & | operator<< (ostream &out, const BitArray &array) |
| BitArray | operator| (const BitArray &op1, const BitArray &op2) |
| BitArray | operator& (const BitArray &op1, const BitArray &op2) |
Arreglo contiguo de bits.
BitArray define una arreglo contiguo de bits. El consumo de memoria es proporcional a la n/8; donde n es la cantidad de bits que se desean manejar.
El arreglo es dinámico, lo que implica que éste puede expandirse dinámicamente según la necesidad.
El acceso al i-ésimo bit puede realizarse mediante el operador []. Sin embargo, puesto que esta clase de acceso está implementada mediante una clase proxy, el acceso puede fallar en algunas expresiones donde el compilador no logre efectuar las transformaciones de tipos adecuadas.
|
inline |
Constructor de arreglo de dim bits.
| [in] | dim | cantidad de bits. Por omisión es 256. |
| bad_alloc | si no hay suficiente memoria para un bloque continuo de dim/8 bytes. |
Here is the call graph for this function:
|
inline |
Constructor copia.
Instancia un arreglo de bits copia exacta de array.
| [in] | array | el arreglo de bits a ser copiado. |
| bad_alloc | si no hay suficiente memoria para un bloque continuo de dim/8 bytes. |
Here is the call graph for this function:
|
inline |
Construye un nuevo arreglo de bits a partir de un archivo construido mediante el método save().
|
inline |
Construye un nuevo arreglo de bits a partir de un arreglo de caracteres previamente generado con load_from_array_of_chars
Here is the call graph for this function:
|
inlinenoexcept |
Desplaza los bits n posiciones a la izquierda circularmente.
Los bits son desplazados sin perderse ninguno, los n primeros bits pasan a ocupar las últimas n posiciones del arreglo.
| [in] | n | la cantidad de posiciones que se van a desplazar los bits. |
Here is the call graph for this function:
|
inlinenoexcept |
Desplaza los bits n posiciones a la derecha circularmente.
Los bits son desplazados sin perderse ninguno, los últimos n bits pasan a ocupar las primeras n posiciones del arreglo.
| [in] | n | la cantidad de posiciones que se van a desplazar los bits. |
Here is the call graph for this function:
|
inline |
Desplaza los bits n posiciones a la izquierda dinámicamente.
Los bits son desplazados sin perderse ninguno y el arreglo crece agregando n ceros a la derecha.
| [in] | n | la cantidad de posiciones que se van a desplazar los bits. |
|
inline |
Desplaza los bits n posiciones a la derecha dinámicamente.
Los bits son desplazados sin perderse ninguno y el arreglo decrece eliminando los n ceros que quedarÃan a la izquierda
| [in] | n | la cantidad de posiciones que se van a desplazar los bits. |
Here is the call graph for this function:
|
inlinenoexcept |
Desplaza los bits n posiciones a la izquierda.
Los bits son desplazados y se considera al arreglo de tamaño fijo, es decir, los n primeros bits se pierden.
| [in] | n | la cantidad de posiciones que se van a desplazar los bits. |
|
inline |
Carga desde un archivo un arreglo de bits.
load(input) toma el archivo abierto en input, previamente guardado con el método load(), y restaura el arreglo al valro guardado.
| [in] | input | stream de entrada donde se encuentra fguarado el arreglo y que debe haber sido previamente guardado con save(). |
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
Lee un arreglo de bits guardado en un arreglo de caracteres.
load_from_array_of_chars(str, num_bits) toma un arreglo str, previamente generado con save_in_array_of_chars, de num_bits de largo, y lo carga.
| [in] | str | el arreglo de caracteres donde se encuentra el de bits. |
| [in] | num_bits | la cantidad de bits del arreglo. Note que no es la misma que la cantidad de bytes. |
Here is the call graph for this function:
Here is the caller graph for this function:Asignación de arreglo de bits.
Libera toda la memoria de this, aparta nueva memoria para albergar array y copia exactamente los bits de array a this.
| [in] | array | el arreglo de bits a ser copiado. |
| bad_alloc | si no hay suficiente memoria para un bloque continuo de dim/8 bytes. |
|
inline |
Lectura rápida del bit i.
Lee el bit i sin verificar memoria
| [in] | i | Ãndice del bit a ser leÃdo. |
Here is the call graph for this function:
|
inline |
Lee el bit i.
| [in] | i | Ãndice del bit a ser leÃdo. |
Here is the caller graph for this function:
|
inline |
Reserva por adelantado memoria para el arreglo de bits a la dimensión dim.
reserve() aparta por adelantado la memoria suficiente para guardar dim bits. De este modo, los accesos de escritura o lectura pueden hacerse directa y más rápidamente mediante los métodos read() y write().
| bad_alloc | si no hay suficiente memoria |
Here is the call graph for this function:
|
inlinenoexcept |
Desplaza los bits n posiciones a la derecha.
Los bits son desplazados y se considera al arreglo de tamaño fijo, es decir, los últimos n bits se pierden.
| [in] | n | la cantidad de posiciones que se van a desplazar los bits. |
|
inline |
Guarda en un archivo texto la secuencia de bits.
save() almacena en el archivo texto output, ya abierto, la secuencia de bits en formato decimal.
La primera lÃnea siempre guarda el tamaño en bytes y en bits. Seguidamente se guardan en valor decimal los bytes secuenciales correspondientes al arreglo.
| [in] | output | stream de salida abierto donde se guardarÃa el arreglo. |
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
Guarda en un archivo texto una declaración estática de cadena de carateres que representa el arreglo.
save_in_array_of_chars(name, output) genera una declaración del tipo:
char name [ size ] = { valores del arreglo separados con comas };
La declaración es guardada en el stream de salida output y el nombre del arreglo es name.
| [in] | name | nombre de la variable arreglo. |
| [in] | output | stream de salida donde se desea guardar la declaración. |
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
Escribe el bit i con el valor value sin verificación de memoria.
| [in] | i | Ãndice del bit a ser escrito. |
| [in] | value | valor a ser escrito en la posición i. |
Here is the call graph for this function:
|
inline |
Escribe el bit i con el valor value
| [in] | i | Ãndice del bit a ser escrito. |
| [in] | value | valor a ser escrito en la posición i. |
Here is the call graph for this function:
Here is the caller graph for this function: