X-Git-Url: https://git.llucax.com/z.facultad/75.68/celdas.git/blobdiff_plain/a4c9e136c32a1686046eaf6c6e1902cac4b7bb73..cf47fee21741c00d17387e1c642056705bc1269b:/trunk/src/indicemagico.h diff --git a/trunk/src/indicemagico.h b/trunk/src/indicemagico.h index adbc0cc..01dae6d 100644 --- a/trunk/src/indicemagico.h +++ b/trunk/src/indicemagico.h @@ -10,6 +10,7 @@ #include #include #include +#include // FIXME template @@ -40,7 +41,9 @@ public: void add(CIndiceMagico& indice) { for (unsigned i = 0; i < indice.m_nombres.size(); ++i) + { add(indice.m_nombres[i], indice.m_datos[i]) ; + } } @@ -91,14 +94,12 @@ public: void remove(const std::string& nombre) { - bool exito = false ; - unsigned i; - - for (i = 0; !exito && i < m_nombres.size(); ++i) - exito = m_nombres[i]==nombre; - - if (exito) - remove(i); + for (unsigned i = 0; i < m_nombres.size(); ++i) + if (m_nombres[i]==nombre) + { + remove(i); + return; + } } @@ -115,8 +116,20 @@ public: template < typename T > std::ostream& operator<< (std::ostream& os, CIndiceMagico& im) { - for (unsigned i = 0; i < im.count(); ++i) - os << "\t" << im.keys(i) << "=" << im[i] << "\n"; + unsigned c = im.count(); + if (c == 0) return os << "\t\tvacío\n"; + for (unsigned i = 0; i < c; ++i) + os << "\t\t" << im.keys(i) << ":\t" << im[i] << "\n"; + return os; +} + +template < typename T > +std::ostream& operator<< (std::ostream& os, CIndiceMagico& im) +{ + unsigned c = im.count(); + if (c == 0) return os << "\t\tvacío\n"; + for (unsigned i = 0; i < c; ++i) + os << "\t\t" << im.keys(i) << ":\t" << *im[i] << "\n"; return os; }