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

vector::erase

Vectors are sequence container and work like dynamic arrays. Vectors stores elements in contiguous memory locations i.e in a linear sequence. vector::erase() is an inbuilt function in c++ used for removing the specific element from vector or removing the range of elements.

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

Syntax:

句法:

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

Here, VectorName is the name of vector used at the time of declaration.

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

Parameters:

参数:

  • Pos: It is the position of an element of the vector you want to delete denoted by the iterator.

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

  • StartPos: It is the iterator specifying a start of the range to be removed.

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

  • EndPos: It is the iterator pointing to one position ahead of the last element to be removed from the range.

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

Note: erase(StartPos, EndPos) specifies the range which includes all the elements between StartPosand EndPos, including the element pointed by StartPosbut not include the one pointed by EndPosi. e [StartPos, EndPos).

注意: 擦除(StartPos,EndPos)指定包括所有StartPosand EndPos之间的元素,包括由StartPosbut指出不包括一个指出由EndPosi的元件的范围内。 e [StartPos,EndPos) 。

Example 1: This example shows the basic working of vector::erase() function.

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

#include<iostream>
#include<vector>
using namespace std;
	
int main ()
{
	std::vector<int> MyVector;
	
	// insert into vector
	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;
	
	// erase the 3rd element
	MyVector.erase (MyVector.begin()+3);
	cout << " After removing 3rd element: ";
	for (unsigned i=0; i< MyVector.size(); ++i)
		cout << ' ' << MyVector [i]; 
	
	cout<<endl;
		
	// erase the first 3 elements:
	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;
}


Output

输出量

 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
 

Example 2: Erase all even numbers in a vector.

示例2:擦除向量中的所有偶数。

#include <iostream>
#include <vector>
using namespace std;
int main( )
{
    vector<int> c;
    
    // inserting in vector
    for (int i=1; i<=10; i++) c.push_back(i);
    
    cout<<"Elements in Vector : ";
    for (int i=0; i<=9; i++) {
        cout << c[i] << " ";
    }
    cout <<endl;
 
    // Erase all even numbers
    for (vector<int>::iterator it = c.begin(); it != c.end(); ) {
    	// if number is even remove it
        if (*it % 2 == 0) {
            it = c.erase(it);
        } else {
        	// if number if not even check for next element
            ++it;
        }
    }
 	cout<<"After removing all even numbers : ";
    for (vector<int>::iterator it = c.begin(); it != c.end(); it++ ) {
        cout << *it << " ";
    }
return 0;
}


Output

输出量

Elements in Vector : 1 2 3 4 5 6 7 8 9 10
After removing all even numbers : 1 3 5 7 9


翻译自: https://www.includehelp.com/stl/erase-elements-in-cpp-vector-using-vector-erase.aspx

vector::erase

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值