X-Git-Url: https://git.llucax.com/z.facultad/75.68/celdas.git/blobdiff_plain/a4c9e136c32a1686046eaf6c6e1902cac4b7bb73..3de9a6adae2fe5a00ec315ba34f08f6d91a5b265:/trunk/src/indicemagico.h?ds=sidebyside diff --git a/trunk/src/indicemagico.h b/trunk/src/indicemagico.h index adbc0cc..9ad336e 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; + } } @@ -113,11 +114,41 @@ public: }; template < typename T > +inline 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(); +#ifdef LOG + if (c-- == 0) return os << ""; + for (unsigned i = 0; i < c; ++i) + os << im[i] << ","; + os << im[c]; + return os; +#else // ! LOG + 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; +#endif // LOG +} + +template < typename T > +inline +std::ostream& operator<< (std::ostream& os, CIndiceMagico& im) +{ + unsigned c = im.count(); +#ifdef LOG + if (c-- == 0) return os << ""; + for (unsigned i = 0; i < c; ++i) + os << *im[i] << ","; + os << *im[c]; + return os; +#else // ! LOG + 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; +#endif // LOG } #endif