我将对象存储在列表中。我想访问他们的方法,但我不知道如何做到这一点。在C#中,我需要写:
for (i = 0; i < myList.count(); i++)
myList[i].update();
但是C ++不起作用:
list<Bullet> bullets;
bullets.emplace_back(t_bulletPlayer);
for (i = 0; i < bullets.size(); i++)
{
bullets[i].update();
}
你能帮助我吗?
答案 0 :(得分:3)
std::list
没有索引访问运算符。如果您经常需要索引访问,则可能需要std::vector
。对于在列表中的每个对象上调用方法的用例,请使用如下的简单循环:
for (auto b : bullets)
b.update();
另外,你对emplace_back
的使用没有意义(它甚至不应该编译,但显然MSVC ++有一个不一致的emplace_back(T&&)
)。使用push_back
将您类型的现有对象添加到列表或向量中。