gpt4 book ai didi

c++ - 从 vector 中删除类指针

转载 作者:行者123 更新时间:2023-11-30 02:42:55 24 4
gpt4 key购买 nike

假设我有这样的东西

vector<foo*> f;

现在假设我有这样的方法

void RemoveFromFoo(foo* fptr)
{
//search vector and remove if present
}

这样的东西行得通吗?

f.erase(std::remove(f.begin(), f.end(), fptr ), f.end());

最佳答案

是的。这就是用于从容器中删除选定元素的erase-remove 习语

remove 会将您想要保留的所有元素(那些不等于 fptr 的元素)移动到序列的开头,并返回一个迭代器到第一个它们之后的元素(您要删除的第一个元素)。

然后 erase 将从那里删除元素,直到容器的末尾,只留下您想要保留的开头部分。

关于c++ - 从 vector 中删除类指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26609606/

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