作者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)