c++ - 另一个 C++ 列表问题

标签 c++ list loops

我很卡在这里,我已经尽力了,但我无法解决它。

我想这样做:

list<Enemy> *_myEnemies;
Enemy* _myEnemiesPushBack;

_myEnemiesPushBack = new Enemy;
_myEnemiesPushBack->load("earth.png");
_myEnemiesPushBack->setPos(150, 150);
_myEnemies->push_back(_myEnemiesPushBack); //error here

错误:

\init.cpp(41): error C2664: 'void std::list<_Ty>::push_back(_Ty &&)' : cannot convert parameter 1 from 'Enemy *' to 'Enemy &&' 1> with 1> [ 1> _Ty=Enemy 1>
] 1> Reason: cannot convert from 'Enemy *' to 'Enemy' 1>
No constructor could take the source type, or constructor overload resolution was ambiguous

谢谢!

最佳答案

你根本不需要指针。

std::list<Enemy> myList;

Enemy en;
en.load("earth.png");
en.setPos(150,150);
myList.push_back(en);

typedef std::list<Enemy>::iterator iterator;
for (iterator it = list.begin(), end = list.end(); it != end; ++it) {
  it->move();
}

我还鼓励您从某处获取一本关于 C++ 的书籍(对于初学者),或者如果这是您的特定障碍,则获取关于 STL 的书籍。不幸的是,C++ 不是您可以在没有指导的情况下进行实验的东西(至少一开始是这样)。

关于c++ - 另一个 C++ 列表问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5688811/

相关文章:

c++ - 错误 'map' 未在此范围内声明

c++ - std::ifstream::open() 不工作

python - 有什么办法可以缩短这个列表的理解力吗?

python - 我需要创建一个列表,其中包含一次取三个列表的所有总和,即添加前 3 个元素,然后添加下 3 个

php - 带有 SimpleXMLElement 的大型 PHP for 循环非常慢 : memory issues?

c++ - 类型删除和访问器

c++ - 如何检查 std::async 任务是否完成?

python - 如何在Python中检查列表/矩阵中的所有项目是否不同

java - 使用近似和循环求平方根

java - 与 while 循环相关的变量声明的位置