00001 00009 #ifndef _vector_disperso_h 00010 #define _vector_disperso_h 00011 00012 00035 class Vector_Disperso { 00036 private: 00066 struct Elemento { 00067 int indice; 00068 float valor; 00069 }; 00070 Elemento * datos; 00071 int nelementos; 00072 int reservados; 00073 float valor_por_defecto; 00083 bool posicion_indice(int& pos, int i) const; 00090 void expandir(); 00098 void contraer(); 00099 public: 00100 Vector_Disperso(); 00101 Vector_Disperso(const Vector_Disperso& orig); 00102 ~Vector_Disperso(); 00103 Vector_Disperso& operator= (const Vector_Disperso& original); 00108 float get_default() const; 00115 void set_default(float f); 00122 float get(int i) const; 00128 void set(int i, float f); 00134 int num_elementos() const; 00145 void datos_posicion(int i, int& indice, float& valor) const; 00146 }; 00147 00148 #endif /* _vector_disperso_h */