gpt4 book ai didi

c++ - 在列表中查找特定项目

转载 作者:行者123 更新时间:2023-11-28 02:53:01 25 4
gpt4 key购买 nike

首先,我知道 vector 会更容易做到这一点。但是,这是针对一个类的,列表有助于排序。现在,我有一个指向 Sprite 对象的指针列表。我想从列表中的第二项开始并对它们运行一些方法,但我不确定如何从第二项开始,以及如何从列表中访问 Sprites 函数。

这是有问题的代码。

    list<Sprite*>::iterator iter = sprites.begin();
iter++;
iter++;
while (iter != sprites.end()) //Missile Movement
{
dynamic_cast<Missile*>(sprites[iter])->Update();

if (!dynamic_cast<Missile*>(sprites[iter])->GetActive())
{
delete sprites[iter];
sprites.erase(iter--);
}

iter++;
}

目前,代码设置为使用 Sprite 指针 vector 。我无法使用当前代码对对象调用 Update 或 GetActive。你们能帮我理解如何更改语法以将 sprites 更改为列表吗?

最佳答案

list<Sprite*>::iterator iter = sprites.begin();
if (sprites.size() < 2) throw std::runtime_error("too few sprites");
iter++;
iter++;
while (iter != sprites.end()) //Missile Movement
{
if (Missile* p = dynamic_cast<Missile*>(*iter))
{
p->Update();
if (!p->GetActive())
{
delete p;
iter = sprites.erase(iter);
}
else
++iter;
}
else
std::cerr << "WARN: sprite is not a missile\n";
}

关于c++ - 在列表中查找特定项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22623946/

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