ich versuche im moment eine verkette liste oder besser ein deque selbst zu implementieren aber irgendwie habe ich dabei ein problem. Ich habe ne Element struktur:
C++:
struct element { element() { next = 0; prev = 0;}; element* next; element* prev; T content; };//element
und in der liste einen zeiger auf das root und auf das letzte element.
C++:
element *last; element *first;
dann habe ich die funktion begin die einen iterator der auf den beginn der liste zeiggt zurückgeben soll:
C++:
iterator begin() { return iterator(first); };
und meine iterator klasse
C++:
class iterator { public: iterator(element &con):current(con) {}; iterator(): current(0) {}; iterator(iterator &ito): current((*ito)) {}; private: element current; };//iterator
wenn ich nun die beginn funktion aufrufe bekomme ich folgene fehlermeldung:
Code:
error: no matching function for call to ‘blue_xenon::bx_list<...>::iterator::iterator(blue_xenon::bx_list<...>::element*&)’ note: candidates are: blue_xenon::bx_list<T>::iterator::iterator(blue_xenon::bx_list<T>::iterator&) blue_xenon::bx_list<T>::iterator::iterator() blue_xenon::bx_list<T>::iterator::iterator(blue_xenon::bx_list<T>::element&)
-- "Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Aber beim Universum bin ich mir nicht ganz sicher." - Albert Einstein www.blue-xenon.de.vu
So wirklich habe ich das mit meiner Liste noch nicht hinbekommen. Meine List Klasse sieht folgendermaßen aus:
C++:
class list public: class iterator { public: iterator(element *con):current(con) {}; private: element *current; };//iterator iterator begin() { return iterator(first); }; private: element *first; };//list
Wenn ich list::begin() aufrufe bekomme ich folgende fehlermeldungen:
Code:
‘blue_xenon::bx_list<int>::iterator::iterator(blue_xenon::bx_list<int>::iterator)’ note: candidates are: blue_xenon::bx_list<T>::iterator::iterator(blue_xenon::bx_list<T>::iterator&) [with T = int] blue_xenon::bx_list<T>::iterator::iterator(blue_xenon::bx_list<T>::element*) [with T = int]
-- "Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Aber beim Universum bin ich mir nicht ganz sicher." - Albert Einstein www.blue-xenon.de.vu
danke funktioniert jetzt -- "Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Aber beim Universum bin ich mir nicht ganz sicher." - Albert Einstein www.blue-xenon.de.vu