gpt4 book ai didi

c++ - 如何使用指针从双端队列中删除特定元素

转载 作者:行者123 更新时间:2023-12-01 14:07:05 25 4
gpt4 key购买 nike

所以假设我有一个 deque<int> .我也有一个 int*指向特定元素 x在双端队列中,但我不知道 x 的索引.有什么办法可以删除 x来自我的双端队列,只有一个指向 x 的指针?

最佳答案

Is there a way I can remove 'x' from my deque with just a pointer to x?



是的,有办法。使用线性搜索查找与指针地址相同的双端队列中的元素。这应该为要删除的元素生成一个迭代器。将其传递给 deque::erase .线性搜索有一个标准算法: std::find_if .

但是请注意,此搜索会产生一些开销。如果首先存储迭代器而不是指针,则可以避免搜索。也就是说,删除本身具有线性复杂性(除非元素位于末端之一),因此搜索不会使复杂性逐渐变差。

另请注意,删除双端队列的元素会使所有引用无效,包括指向容器的指针和迭代器,除非您从一端删除(在这种情况下,只有对被删除元素的引用无效)。

关于c++ - 如何使用指针从双端队列中删除特定元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61862222/

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