我有一个称为形从中既Circle和Rectangle派生的抽象基类,但是当我执行在VS 2005下面的代码我得到的错误调试断言失败。同时,我还没有重载==操作符在任何类矢量迭代器不dereferencable
表达:矢量迭代器不dereferencable,究竟是什么原因。
vector<Shape*> s1;
s1.push_back(new Circle(point(1,2),3));
s1.push_back(new Circle(point(4,3),5));
s1.push_back(new Rectangle(point(1,1),4,5));
vector<Shape*> s2(s1);
reverse(s1.begin(),s1.end());
(*find(s1.begin(),s1.end(),new Circle(point(1,2),3)))->move(point(10,20));
并且比较形状对象而不是形状指针使用boost :: ptr_vector。这使您可以更自然地使用常规算法。 – 2008-11-19 20:00:11