删除vector数组中指定元素

By | 09月11日
Advertisement

比如删除第4个元素:

vector<int> v;

v.erase(v.begin()+3);

v.erase()的参数是一个iterator,它没有一个参数为int的版本,所以你需要指定一个iterator给它, 就像上面的v.begin()+3就是指第4个元素。

-------------------------------------------------------------------------

这里是msdn的实例代码

C/C++ code#include
#include

#if _MSC_VER > 1020 // if VC++ version is > 4.2
using namespace std; // std c++ libs implemented in std
#endif

typedef vector > INTVECTOR;

const ARRAY_SIZE = 10;

void ShowVector(INTVECTOR &theVector);

void main()
{
// Dynamically allocated vector begins with 0 elements.
INTVECTOR theVector;

// Intialize the vector to contain the numbers 0-9.
for (int cEachItem = 0; cEachItem < ARRAY_SIZE; cEachItem++)
theVector.push_back(cEachItem);

// Output the contents of the dynamic vector of integers.
ShowVector(theVector);

// Using void iterator erase(iterator Iterator) to
// delete the 6th element (Index starts with 0).
theVector.erase(theVector.begin() + 5);

// Output the contents of the dynamic vector of integers.
ShowVector(theVector);

// Using iterator erase(iterator First, iterator Last) to
// delete a range of elements all at once.
theVector.erase(theVector.begin(), theVector.end());

// Show what's left (actually, nothing).
ShowVector(theVector);
}

// Output the contents of the dynamic vector or display a
// message if the vector is empty.
void ShowVector(INTVECTOR &theVector)
{
// First see if there's anything in the vector. Quit if so.
if (theVector.empty())
{
cout << endl << "theVector is empty." << endl;
return;
}

// Iterator is used to loop through the vector.
INTVECTOR::iterator theIterator;

// Output contents of theVector.
cout << endl << "theVector [ " ;
for (theIterator = theVector.begin(); theIterator != theVector.end();
theIterator++)
{
cout << *theIterator;
if (theIterator != theVector.end()-1) cout << ", ";
// cosmetics for the output
}
cout << " ]" << endl ;
}

Similar Posts:

  • 删除一个数组中指定位置的元素

    var array = ["111", "222", "333", "444", "555", "666"]; var indexList = [0, 5, 2]; Array.prototype.del = function(indexList) { function isValidate(number) { if(isNaN(number) && number >

  • 删除数组中某个元素

    需求:已知一个数组,删除其中某个元素,其它向左移,最后一位补null值 分析: 1.找出要删除元素的下标,找个变量接收 2.此位置元素后面的元素依次向左移一位 3.补齐最后一位赋值null 4.输出新数组 /** * */ package com.cn.u4; /** * @author Administrator *删除数组中某个元素值 */ public class DelArray { public static void main(String[] args) { //定义数组 Stri

  • js如何移除数组中指定索引的项

    js如何移除数组中指定索引的项: 在Array对象中有给定的函数可以删除数组中指定的元素,虽然非常好用,但是总感觉看不到摸不着的比较别扭,下面就分享一个自定义的删除数组指定索引值元素的函数,希望给大家一个全新的思路. 代码实例如下: var array=[]; array[0]="蚂蚁部落一"; array[1]="蚂蚁部落二"; array[2]="蚂蚁部落三"; array[3]="蚂蚁部落四"; array[4]=&qu

  • qsort 函数的使用——对普通数组、指针数组、二维数组中的元素进行排序

    在ANSI C中,qsort函数的原型是 #include <stdlib.h> void qsort(void *base, size_t nmemb, size_t size, int (*compar) (const void *, const void *)); 解释:qsort函数对含有nmemb个元素的数组进行排序,而base指针指向数组的第一个元素.这个数组的元素个数由size指定. compar函数对qsort的比较操作进行定义,所以可以定制数字的比较,字符串的比较,甚至结构体

  • 微策略面试题:在旋转后的数组中查找元素(二分查找)

    版权所有.所有权利保留. 欢迎转载,转载时请注明出处: http://blog.csdn.net/xiaofei_it/article/details/17123303 一个无重复元素的有序数组,经过若干次旋转后,得到一个新数组.比如[1,4,5,8,10,12,56,78]变成[12,56,78,1,4,5,8,10]. 现在要在这个数组中寻找元素. 其实算法很简单,就是用二分查找,只不过要看mid是属于哪个部分(前半部分还是后半部分),因此有四种情况. 代码如下: #include <ios

  • 删除外部dwg中指定的块定义

    本例实现删除外部图纸中指定的块定义,在外部图纸当前模型空间中是没有该块定义的块参照存在. 代码如下: void CBlockUtil::DeleteBlockDefFormOtherDwg(const TCHAR* fileName, const TCHAR* blkDefName) { // 使用_SH_DENYNO参数打开图形(只读打开),允许其它用户读写该文件 AcDbDatabase* pSourceDwg = new AcDbDatabase(Adesk::kFalse); Acad:

  • 关于动态存储分配函数的调用,在已经过排序的数组中查找及删除内容的操作,余数的分析,删除字符数组中的空格,对链表的逆置,在源字符串中查找子字符串的个数,函数指针以及函数的调用,循环赋值带来的问题以及插入

    其一:关于动态存储分配函数的调用 STU *fun(STU a[ ], int m) //主函数中调用函数语句:pOrder=fun(a,m); { //函数功能为查找结构体数组中前m名学生成绩,并输出 STU b[N], *t; int i,j,k; // t=(STU *)calloc(m,sizeof(STU)); 这是一句被屏蔽的语句 t=(STU *)calloc(sizeof(STU),m); //实际上以上这两个语句都被运行成功,为什么?我想说明的问题是:calloc( , )函数

  • 如何删除linux系统中指定日期之前的文件?

    如何删除linux系统中指定日期之前的文件?就需要使用到一些命令: #find /tmp -mtime +30 -type f -name *.sh[ab] -exec rm -f {} \; 假如在一个目录中保留最近30天的文件,30天前的文件自动删除 #find /tmp -mtime +30 -type f -name *.sh[ab] -exec rm -f {} \; /tmp --设置查找的目录: -mtime +30 --设置时间为30天前: -type f --设置查找的类型为文

  • 求数组中不同元素的个数

    今天莫名的想到如果存在一个有元素重复出现的数组,那么如何求出这个数组中不同元素的个数.越想越不得解.然后搜索了关键词,居然找了大半天(百度的结果我都翻了好几页才找到满足要求的解答.)所以原创这篇博客,从前到后,用了我半个小时. - #include<iostream> #include<algorithm> #include<fstream> #include<stdio.h> using namespace std; int a[101], n = 0;

  • SQL批量删除数据表中指定字段对应的所有约束

    --SQL批量删除数据表中指定字段对应的所有约束 --定义要操作的数据表名变量 declare @TableName nvarchar(250) set @TableName='数据表名' --定义要操作的字段名变量 declare @ColumnName nvarchar(250) set @ColumnName='字段名' --定义当前查询的约束变量 declare @ConstraintName varchar (250) --声明读取数据表中指定字段对应的所有约束列表游标 declare

Tags: