0
Exscusme買我的英文)))STL,列表,迭代器
我有這樣的問題:我 迭代,必須與更多鈔票編輯項目STL列表項:刪除,添加,編輯。 這是我的方法:
void MoveOnNewPlace(Tree& parent, Tree& child)
{
Tree *temp=&parent;
while(temp->GetParent()!=temp && temp->GetItem().GetChar()=='(')
temp=temp->GetParent();
if(*temp==parent) return;
Tree newTr(child);
newTr.SetParent(*temp);
temp->GetSubNodes()->push_back(newTr); //(Tree(child,temp));
parent.GetSubNodes()->remove(child);
}
list<Tree>::_Nodeptr ptr=nodes->_Myhead->_Next;
unsigned int i=0;
while(i++<nodes->size() && ptr!=0)
{
Prepair(ptr->_Myval);
if(ptr->_Myval.GetItem().GetChar()=='[')
MoveOnNewPlace(t,ptr->_Myval);
ptr=ptr->_Next;
}
有人能告訴我,我怎麼能做到這一點的另一種方式,而無需使用_Myhead,_Myhead等明確地。 謝謝!
如果我使用列表 ::爲const_iterator然後我得到的編譯錯誤, 如果我使用列表:迭代我得到運行時錯誤,因爲列表項可以被刪除,並導致內存訪問衝突。 –
Roman
2010-09-17 21:52:54
不幸的是,它不起作用。 – Roman 2010-09-17 22:03:41