Universidad de Costa Rica
|
|
|
|
|
El objetivo de esta tarea programada es que usted diseñe e implemente una clase completa, junto con sus programas de prueba.
Uno de los problemas que el lenguaje C++ tiene es que no permite usar vectores y matrices de tamaño variable, pues las dimensiones de todos los arreglos deben ser definidos en tiempo de compilación. Para remediar esta carencia, C++ le ofrece al programador la posibilidad de usar sobrecarga de operadores para simular el uso de vectores sobre estructuras de datos más sofisticadas, como la lista.
Su trabajo consiste en
especificar e
implementar
la clase "vector" usando la clase lista para que
"vector" pueda ser un vector de tamaño
variable aunque para el
programador
cliente parezca un arreglo C++.
class vector {
public:
vector(size_t n); // Contructor
vector(); // Contructor por defecto (de vector)
~vector(); // Destructor
void Agregar_Final (size_t); // Agregar elementos al Final
void Agregar_Principio(size_t); // Agregar elementos al principio
void Eliminar_Final (size_t); // Eliminar elementos al Final
void Eliminar_Principio(size_t); // Eliminar elementos al principio
T & operator[] (size_t); // V[i]
size_t Capacidad() const;
size_t Dimension() const;
}; // vector
|
En la clase vector lo más importante es el
método e
"vector::operator[]()" que se encarga de retornar una
referencia al i-ésimo componente del vector. Los otros
métodos sirven para hacer que crezca o disminuya de
tamaño el vector.
Para mostrar que su vector funciona, use la función
"rand()" para generar varias secuencias de al menos
1,000,000 de números y luego aplíqueles el algoritmo
"qsort()"
para ordenarlos.
Entregue su tarea por correo electrónico, como lo hizo anteriormente.
| Tiempo de entrega: | 10 días |
|
|
| Primera etapa: | 1 semana | ||
| Modalidad: | En parejas |
Adolfo Di Mare <adolfo@di-mare.com>.
|
|
|