使用vector :: erase()擦除C ++ Vector中的元素

向量是序列容器,就像动态数组一样工作。向量将元素存储在连续的存储位置中,即以线性顺序存储。vector :: erase()是c ++中的内置函数,用于从vector中删除特定元素或删除元素范围。

语法:

    VectorName.erase (pos);
    VectorName.erase(StartPos, EndPos);

在此,VectorName是声明时使用的向量的名称。

参数:

  • 位置:这是要删除的向量元素的位置,由迭代器表示。

  • StartPos:它是迭代器,指定要删除的范围的开始。

  • EndPos:迭代器指向要从范围中删除的最后一个元素之前的一个位置。

注意:擦除(StartPos,EndPos)指定范围,该范围包括StartPos和EndPos之间的所有元素,包括StartPos指向的元素,但不包括EndPosi指向的元素。e [StartPos,EndPos)。

示例1:此示例显示vector :: erase()函数的基本工作。

#include<iostream>
#include<vector>
using namespace std;
	
int main ()
{
	std::vector<int> MyVector;
	
	//插入向量
	for (int i=1; i<=8; i++) MyVector.push_back(i);
	cout << " After elements insertion : "; 
	for (unsigned i=0; i< MyVector.size(); ++i)
		cout << ' ' << MyVector [i];
	
	cout<<endl;
	
	//删除第三个元素
	MyVector.erase (MyVector.begin()+3);
	cout << " After removing 3rd element: ";
	for (unsigned i=0; i< MyVector.size(); ++i)
		cout << ' ' << MyVector [i]; 
	
	cout<<endl;
		
	//删除前三个元素:
	MyVector.erase (MyVector.begin(),MyVector.begin()+3);
	cout << " After removing first three elements: ";
	for (unsigned i=0; i< MyVector.size(); ++i)
		cout << ' ' << MyVector [i]; 	
		
	return 0;
}

输出结果

 After elements insertion :  1 2 3 4 5 6 7 8
 After removing 3rd element:  1 2 3 5 6 7 8
 After removing first three elements:  5 6 7 8