什么是C ++中的deque.erase()?

在本文中,我们将讨论C ++中deque::erase()函数的工作,语法和示例。

什么是C ++ STL中的双端队列?

双端队列是双端队列,它是序列容器,在两端都提供扩展和收缩功能。队列数据结构允许用户仅在END插入数据,并从FRONT删除数据。让我们以在公交车站排队的类比为例,那里的人只能从END插入队列,而站在FRONT的人是第一个被移走的人,而在双头队列中,可以同时插入和删除数据结束。

什么是deque::erase()?

此功能用于在指定位置和范围内从容器中删除元素。此功能通过删除元素的数量来减少双端队列容器的大小。双端队列容器可有效地在双端队列容器的开头或末尾移除或插入元素。

语法

dequename.erase(Position)
dequename.erase( beginning position, ending position)

参数

它可以定义要从双端队列容器中删除的元素的位置,也可以是迭代器的形式,还可以定义要从容器中删除/擦除的指定范围。

示例

Input: 2 3 4 5 6 7 8
Output: 2 4 6 8
Input: 5 6 7 8 9 3 4 6
Output: 5 3 4 6

可以遵循的方法

  • 首先,我们初始化双端队列。

  • 然后我们打印双端队列。

  • 然后我们定义了delete()函数。

  • 然后我们在擦除操作后打印新的双端队列。

通过使用上述方法,我们可以消除双端队列中的元素。在定义擦除()函数时,我们指定要删除的元素的位置或指定要删除的元素的范围。

示例

// C++ code to demonstrate the working of deque.erase( ) function
#include<iostream.h>
#include<deque.h>
Using namespace std;
int main( ){
   //初始化双端队列
   deque<int> deque ={ 1 2 3 4 5 6 7 8 9 10 };
   cout<< “ Deque: “;
   for( auto x = deque.begin( ); x != deque.end( ); ++x)
      cout<< *x << “ “;
   //删除双端队列中的第五个元素
   deque.erase(deque.begin( ) + 4)
   //删除双端队列的前四个元素
   deque.erase(deque.begin( ), deque.begin( ) + 4)
   //打印新双端队列
   cout<< “ New deque:”;
   for( x = deque.begin( ) ; x >= deque.end( ); ++x)
      cout<< “ “ <<*x;
   return 0;
}

输出结果

如果我们运行上面的代码,那么它将生成以下输出

Input – Deque: 1 2 3 4 5 6 7 8 9 10
Output – New Deque: 6 7 8 9 10