Advertisement
tomasaccini

Untitled

Jul 18th, 2018
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.47 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <list>
  3.  
  4. template<class T>
  5. class Matriz {
  6. private:
  7.     size_t filas;
  8.     size_t columnas;
  9.     std::list< std::list<T> > matriz;
  10. public:
  11.     Matriz();
  12.     void agregar_fila();
  13.     void agregar_columna();
  14.     size_t obtener_cantidad_filas();
  15.     size_t obtener_cantidad_columnas();
  16.  
  17.     // Todos devuelven un booleano indicando si la fila y columna recibidas
  18.     // están dentro de la matriz.
  19.     bool agregar_elemento(T& elem, size_t fila, size_t columna);
  20.     bool obtener_elemento(size_t fila, size_t columna, T& elem);
  21.     bool eliminar_elemento(size_t fila, size_t columna);
  22.  
  23.     bool contiene_elemento(T& elem);
  24.  
  25.     ~Matriz();
  26. };
  27.  
  28. /*
  29. Los operadores a utilizar son:
  30.     - Constructor por default: al agregar una nueva fila o columna tenemos
  31.         que llenarla de elementos T creador por default.
  32.     - Asignación por copia (T& operator=(const T& elem)): al agregar un nuevo elemento debemos modificar
  33.         el objeto T que estaba en esa posición, copiando el objeto recibido
  34.         por referencia. Al eliminar un objeto, al objeto en esa posición de
  35.         la matriz le asignamos por copia un nuevo elemento T construido por
  36.         default.
  37.     - bool operator == (const T& other) const; para el contiene_elemento.
  38. */
  39.  
  40. // DUDA: está bien el approach de al agregar una nueva fila o columna asignarle
  41. // elementos T& construidos por default? Habría que mantener la cuenta de
  42. // cantidad de elementos reales agregados a mano?
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement