Ausgabe einer STL List in einer Const Methode
-
Hallo,
ich würde gerne in einer const Methode eine Liste ausgeben.
ostream& Nomen::printMe(ostream& output) const { output << wordType << ": " << value << " "; list<int>::iterator IT; for (IT = zeilenListe.begin(); IT != zeilenListe.end(); IT++) output << *IT; output << endl; return output; }Nehme mal an, dass das garnicht möglich ist?
Alternativ könnte ich die Liste auch als Ausgabestring vorher aufbereiten.
Dazu müsste ich nur wissen, wie ich String und Int-Wert konkatinieren kann.Vielen Dank für jede Hilfe.
Gruß Manuel
Folgeneder Fehler tritt auf:
Nomen.cpp:22: error: no match for 'operator=' in 'IT = (((const std::list<int, std::allocator<int> >)((const Word)this)) + 8u)->std::list<_Tp, _Alloc>::begin [with _Tp = int, _Alloc = std::allocator<int>]()'
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/stl_list.h:112: note: candidates are: std::_List_iterator<int>& std::_List_iterator<int>::operator=(const std::_List_iterator<int>&)
make[2]: *** [build/Debug/Cygwin_4.x-Windows/Nomen.omake[2]: Leaving directory/cygdrive/c/Users/Manuel/Documents/NetBeansProjects/wortIndex\_klausur' make[1]: Leaving directory/cygdrive/c/Users/Manuel/Documents/NetBeansProjects/wortIndex_klausur'
-
Nimm einen const_iterator mit cbegin() und cend().
(Wobei der const_iterator eigentlich reicht.)
PS: Normalerweise überläd man den operator << , sodass du gleich schreiben kannst:std::cout << mein_nomen;
-
cooky451 schrieb:
Nimm einen const_iterator mit cbegin() und cend().
(Wobei der const_iterator eigentlich reicht.)
PS: Normalerweise überläd man den operator << , sodass du gleich schreiben kannst:std::cout << mein_nomen;Hi,
danke, das werd ich gleich ausprobieren.
Der operator<< ist ja überladen.Hab eine Basisklasse, wo der operator<< überladen ist und dann ruf ich printMe() der abgeleiteten Klassen auf.
Gruß Manuel
-
Hat funktioniert. Viele Dank

Gruß Manuel