C ++ Deque delete()函数从指定的位置或范围中删除元素,通过删除的元素数量有效地减少了双端队列的大小。
iterator erase(iterator pos);
iterator erase(iterator first,iterator last);
pos:它定义从双端队列中删除元素的位置。
(first,last):它定义了双端队列的范围,在此范围之间要删除的元素。
它返回一个迭代器,该迭代器指向该函数删除的最后一个元素之后的元素。
让我们看一个简单的示例,该示例将某个范围内的元素删除。
#include <iostream>
#include<deque>
using namespace std;
int main()
{
deque<int> d={1,2,3,4};
deque<int>::iterator itr;
cout<<"双端队列的内容:";
for(itr=d.begin();itr!=d.end();++itr)
cout<<*itr<<" ";
cout<<'\n';
d.erase(d.begin()+1,d.begin()+2);
cout<<"删除第二和第三元素后,双端队列的内容:";
for(itr=d.begin();itr!=d.end();++itr)
cout<<*itr<<" ";
return 0;
}
输出:
双端队列的内容:1 2 3 4
删除第二和第三元素后,双端队列的内容:1 3 4
让我们看一个简单的实例,当元素在指定位置被移除时
#include <iostream>
#include<deque>
using namespace std;
int main()
{
deque<string> str={"mango","apple","strawberry","kiwi"};
deque<string>::iterator itr;
cout<<"双端队列的内容:";
for(itr=str.begin();itr!=str.end();++itr)
cout<<*itr<<" ,";
str.erase(str.begin()+2);
cout<<'\n';
cout<<"现在,双端队列的内容:";
for(itr=str.begin();itr!=str.end();++itr)
cout<<*itr<<" ,";
return 0;
}
输出:
双端队列的内容:mango ,apple ,strawberry ,kiwi ,
现在,双端队列的内容:mango ,apple ,kiwi ,