gpt4 book ai didi

c++ - STL链表::如何访问成员?

转载 作者:搜寻专家 更新时间:2023-10-31 00:41:40 26 4
gpt4 key购买 nike

如果我有一个包含指向某个类的指针的 STL 列表,并且想访问某个类成员,我将如何处理?具体来说,我需要能够删除列表中的成员,每个成员都有一个具有唯一 ID 的成员。

所以我有类似的东西:

class Actor{

private:
int id;

public:
int getActorID(){ return id;};
};

std::list<Actor *> actorList;

std::list<Actor *>::iterator i;

因此,如果每个 Actor 都有一个唯一的 ID,我该如何删除具有特定 ID 的 Actor ?我一直在使用手工编码的链表,但我想将其切换为 STL。唯一的问题是我不知道如何访问方法 getActorID() 来找到要删除的节点。感谢您的帮助。

最佳答案

std::list<Actor *>::iterator it;

std::list<Actor *>::iterator iStart = actorList.begin() ;
std::list<Actor *>::iterator iEnd = actorList.end() ;
for (it=iStart ;it!=iEnd;++it)
{
if (*it->getActorId() == searchedId)
{
actorList.erase(it);
break; //you have unique id's so you could delete a maximum 1 item
}
}

也不要忘记您还有其他选择

std::list::remove
std::list::remove_if

http://en.cppreference.com/w/cpp/container/list/remove

关于c++ - STL链表::如何访问成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12877423/

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