Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef MATRIZ_H
- #define MATRIZ_H
- #include "auxiliares.hpp"
- using namespace std;
- using namespace aed2;
- template<typename T>
- class Matriz{
- public:
- Matriz(Nat,Nat);
- ~Matriz();
- Nat filas();
- Nat columnas();
- bool def(Pos);
- const T& valor(Pos);
- void definir(Pos, const T&);
- bool pertenece(Pos);
- private:
- Nat _filas;
- Nat _columnas;
- Arreglo<Arreglo<T > > _posiciones;
- };
- template<typename T>
- Matriz<T>::Matriz(Nat filas, Nat columnas){
- _filas = filas;
- _columnas = columnas;
- Arreglo< Arreglo<T > > af = Arreglo<Arreglo<T > >(filas);
- Arreglo<T > ac = Arreglo<T >(columnas);
- for(Nat i = 0; i < filas; i++){
- af.Definir(i, ac);
- }
- _posiciones = af;
- }
- template<class T>
- Matriz<T>::~Matriz(){
- }
- template<typename T>
- Nat Matriz<T>::filas(){
- return _filas;
- }
- template<typename T>
- Nat Matriz<T>::columnas(){
- return _columnas;
- }
- template<typename T>
- bool Matriz<T>::def(Pos pos){
- Nat fila = pos.first;
- Nat columna = pos.second;
- return _posiciones[fila].Definido(columna);
- }
- template<typename T>
- const T& Matriz<T>::valor(Pos pos){
- Nat fila = pos.first;
- Nat columna = pos.second;
- return _posiciones[fila][columna];
- }
- template<typename T>
- void Matriz<T>::definir(Pos pos, const T& valor){
- Nat fila = pos.first;
- Nat columna = pos.second;
- _posiciones[fila].Definir(columna, valor);
- }
- template<typename T>
- bool Matriz<T>::pertenece(Pos pos){
- Nat fila = pos.first;
- Nat columna = pos.second;
- return fila < _filas && columna < _columnas;
- }
- #endif //MATRIZ_H
Add Comment
Please, Sign In to add comment