访问列表项c + +

时间:2013-03-03 13:58:30

标签: c++

我将对象存储在列表中。我想访问他们的方法,但我不知道如何做到这一点。在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();
}

你能帮助我吗?

1 个答案:

答案 0 :(得分:3)

C ++中的

std::list没有索引访问运算符。如果您经常需要索引访问,则可能需要std::vector。对于在列表中的每个对象上调用方法的用例,请使用如下的简单循环:

for (auto b : bullets)
  b.update();

另外,你对emplace_back的使用没有意义(它甚至不应该编译,但显然MSVC ++有一个不一致的emplace_back(T&&))。使用push_back将您类型的现有对象添加到列表或向量中。