【发布时间】:2012-10-13 22:05:01
【问题描述】:
如果我有一个包含指向类的指针的 STL 列表,并且想要访问类成员,我该怎么做?具体来说,我需要能够删除列表中的成员,每个成员都有一个具有唯一 ID 的成员。
所以我有类似的东西:
class Actor{
private:
int id;
public:
int getActorID(){ return id;};
};
std::list<Actor *> actorList;
std::list<Actor *>::iterator i;
所以如果每个演员都有一个唯一的 id,我怎样才能删除具有特定 ID 的演员?我一直在使用手动编码的链接列表,但我想将其切换到 STL。唯一的问题是我不知道如何访问方法 getActorID() 来查找要删除的节点。感谢您的帮助。
【问题讨论】:
-
您确定列表是您想要的吗?这听起来更像是在搜索地图。
-
请重新考虑使用链表。如果您要经常遍历列表,请使用向量。如果您需要与对象关联的唯一 id,请使用映射(或 c++11 中的 unordered_map)。链表对于大多数用途来说都很糟糕。 futurechips.org/thoughts-for-researchers/…