gpt4 book ai didi

c++ - vector 迭代器不兼容......但为什么呢?

转载 作者:行者123 更新时间:2023-11-30 01:49:54 25 4
gpt4 key购买 nike

我收到消息“vector 迭代器不兼容”。我试图绕过它,但什么也没有。我以前做过。相同的代码,只是没有在接收“cWORLD* World”的类中使用。我做错了什么?

谢谢!

    else if (Click[2] == true)
{
//go through objects and check collision
for (vector<cOBJECT*>::iterator it = World->ReturnWorldObjects().begin(); it != World->ReturnWorldObjects().end();)
{
//Check for collision and delete object
if (PointInRect(MouseX + offX, MouseY + offY, (*it)->getrect()) == true)
{
// delete object, delete slot, pick up next slot
delete *it;
it = World->ReturnWorldObjects().erase(it);
}
else
{ // no action, move to next
++it;
}
}//for

}//else if (Click[2] == true)

最佳答案

看起来 ReturnWorldObjects 返回 vector 的拷贝,而不是引用。在这种情况下,您正在尝试比较不同对象的迭代器,这些迭代器未按标准检查,但可以由已检查的迭代器检查(在这种情况下,我认为它是 MSVC 已检查的迭代器)。

关于c++ - vector 迭代器不兼容......但为什么呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28297484/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com