Modifying elements in a STL List - C++ -
i attempting construct binary search tree using generalized list in c++.
class element { private: list<element*> _children; char* _name; // , other data members/methods... } as can see, have class "element" , has list "_children" of element pointers.
i trying access these children may add children them , forth...
however, cannot modify these values current method of using "const_iterator" , reason doing "begin()" method of _children returns const_iterator.
someone help? thank :)
update: thank much... turns out, mistakenly had method return const reference of _children data member.
const list<element*>& getchildren();// return [_children] i deleted const , works perfect now. thank you! :d
the begin function return const_iterator if list const. _children list should able standard iterator let perform non-const operations on it:
list<element*>::iterator = _children.begin(); this won't work if passing off const reference list , trying non-const iterator that. not allowed:
void dosomething( const list<element*>& l ) { list<element*>::iterator = l.begin(); } you need instead pass non-const reference list.
the other case not allowed in const function, i.e.
void dosomething() const { list<element*>::iterator = _children.begin(); } but need see more of code confirm if you're doing or not.