作者shryuhuai ()
看板EE_DSnP
標題[問題] hw5關於_trace問題
時間Sat Nov 26 15:22:59 2011
剛剛想了一下發現bst用_trace寫似乎會有bug
如果有以下程式碼
int main(){
BSTree mytree;
mytree.insert("A");
mytree.insert("B");
mytree.insert("C");
mytree.insert("D"); // 排序為 A B C D
BSTree::iteraotr it1 = mytree.begin(); // it1內為_root
BSTree::iterator it2 = ++mytree.begin(); // it2內為_root,R
BSTree::iterator it3 = ++(++mytree.begin()); // it3內為_root,R,R
BSTree::iterator it4 = ++(++(++mytree.begin())); // it4內為_root,R,R,R
cout << *it1 << *it3 << endl; // 輸出AC
mytree.erase(it2);
cout << *it1 << *it3 << endl; // 應該要輸出AC,但是會變成AD,因為B被拔掉了
cout << *it4 << endl; // 記憶體區段錯誤?
}
目前想不到修正bug的方法
因為iterator又不能知道其他iterator的存在
還是_trace的操作和我想像的不一樣?
※ 編輯: shryuhuai 來自: 175.182.109.245 (11/26 22:35)