vector容器中添加和删除元素
添加元素:
方法一:
insert() 插入元素到Vector中 iterator insert( iterator loc, const TYPE &val ); //在指定位置loc前插入值为val的元素,返回指向这个元素的迭代器
void insert( iterator loc, size_type num, const TYPE &val ); //在指定位置loc前插入num个值为val的元素
void insert( iterator loc, input_iterator start, input_iterator end ); //在指定位置loc前插入区间[start, end)的所有元素
方法二:
push_back() 在Vector最后添加一个元素(参数为要插入的值)
删除元素:
方法一:
clear() 清空所有元素 empty() 判断Vector是否为空(返回true时为空)
方法二:
erase() 删除指定元素 (可以用指针来代替迭代器) iterator erase( iterator loc ); //要删除元素的迭代器
iterator erase( iterator start, iterator end ); //要删除的第一个元素的迭代器,要删除的第二个元素的迭代器
方法三:
pop_back() 移除最后一个元素
方法四:
可以采用通用算法remove()来删除vector容器中的元素, 不同的是,采用remove 一般情况下不会改变容器的大小,而pop_back()与erase()等成员函数会改变容器的大小。
例如:
#include "stdafx.h"
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <list>
using namespace std; void PrintInt( const int &nData)
{
cout<<nData<<endl;
} int _tmain( int argc, _TCHAR* argv[])
{
vector< int > vecInt;
for ( int i=; i<;++i)
{
vecInt.push_back(i);
}
cout<< " 向量中的内容为:" <<endl;
for_each(vecInt.begin(),vecInt.end(),PrintInt);
cout<< "vector contains " <<vecInt.size()<< " elements" <<endl;
vecInt.pop_back(); // 删除最后一个元素
cout<< " 删除最后一个元素后,vector contains " <<vecInt.size()<< " elements" <<endl;
vector< int >::iterator k = vecInt.begin();
vecInt.erase(k); // 删除第一个元素
//vecInt.erase(k); // 迭代器k 已经失效,会出错
cout<< " 删除第一个元素后,vector contains " <<vecInt.size()<< " elements" <<endl;
//vecInt.erase(vecInt.begin(),vecInt.end()); // 删除所有元素
//cout<<" 删除所有元素后,vector contains "<<vecInt.size()<<"elements"<<endl; // 输出为0
vector< int >::iterator vecNewEnd =remove(vecInt.begin(),vecInt.end(),); // 删除元素
cout<< " 删除元素后,vector contains " <<vecInt.size()<< " elements" <<endl;
cout<< " 向量开始到新结束为止的元素:" <<endl;
for_each(vecInt.begin(),vecNewEnd,PrintInt);
cout<< " 向量中的元素:" <<endl;
for_each(vecInt.begin(),vecInt.end(),PrintInt);
return ;
}
结果详见:http://www.tuicool.com/articles/eMJ3qe
vector容器中添加和删除元素的更多相关文章
- JavaScript向select下拉框中添加和删除元素
JavaScript向select下拉框中添加和删除元素 1.说明 a 利用append()方法向下拉框中添加元素 b 利用remove()方法移除下拉框中最后一个元素 2.设计源码 < ...
- Arrays.asList () 不可添加或删除元素的原因
Java中奖数组转换为List<T>容器有一个很方便的方法 Arrays.asList(T ... a),我通过此方法给容器进行了赋值操作,接着对其进行 添加元素,却发现会抛出一个(jav ...
- spring:如何用代码动态向容器中添加或移除Bean ?
先来看一张类图: 有一个业务接口IFoo,提供了二个实现类:FooA及FooB,默认情况下,FooA使用@Component由Spring自动装配,如果出于某种原因,在运行时需要将IFoo的实现,则F ...
- STL 查找vector容器中的指定对象:find()与find_if()算法
1 从vector容器中查找指定对象:find()算法 STL的通用算法find()和find_if()可以查找指定对象,参数1,即首iterator指着开始的位置,参数2,即次iterator指着停 ...
- 对List遍历过程中添加和删除的思考
对List遍历过程中添加和删除的思考 平时开发过程中,不少开发者都遇到过一个问题:在遍历集合的的过程中,进行add或者remove操作的时候,会出现2类错误,包括:java.util.Concurre ...
- js进阶 9-11 select选项框如何动态添加和删除元素
js进阶 9-11 select选项框如何动态添加和删除元素 一.总结 一句话总结: 二.js进阶 9-11 select选项框如何动态添加和删除元素 1.案例说明 2.相关知识 Select 下拉列 ...
- javascript数组在指定位置添加和删除元素
在JavaScript中,Array对象提供了一个强大的splice()方法,利用这个方法可以达到在数组的指定位置添加和删除元素的目的. 指定位置删除元素 要在指定位置删除元素,可以使用splice( ...
- 顺序表添加与删除元素以及 php实现顺序表实例
对顺序表的操作,添加与删除元素. 增加元素 如下图所示 对顺序列表 Li [1328,693,2529,254] 添加一个元素 111 ,有三种方式: a)尾部端插入元素,时间复杂度O(1); ...
- python3_列表(修改,添加和删除元素操作)
前言:列表的定义:列表是由一系列按特定顺序排列的元素组成.即列表是一个有序集合. 1.修改列表元素 由前言知列表是一个有序集合,因此在修改列表元素时我们需指定列表名和要修改的元素的索引,再指定该元素的 ...
随机推荐
- [Batch檔案筆記] 在UNC路徑中執行Batch檔
為了讓其他人可以免安裝又可以執行python程式所以我把python portable版本 winpython 放在samba的空間共享但是使用者如果要開 winpython cammand prom ...
- lambda表达式的简单入门
前言:本人在看<Java核心技术I>的时候对lamdba表达式还不是太上心,只是当做一个Java 8的特性了解一下而已,可是在<Java核心技术II>里面多次用到,所以重新入门 ...
- scanf("%s",s)与gets(s)
#include <stdio.h> void fun(char s[]) {; while(s[i]!='\0') {i++;} printf("%d",i);} v ...
- Hdoj—1789
//大意理解 先排序 最早交的里面选最大值 扫描完了加没写的 排序后 应该是早交的和扣分多的在前 用结构体吧/*#include<stdio.h>#include<stdio.h&g ...
- end和sep的使用方法
end: 默认是换行'\n',表示以什么结尾,比如以, | \n 等 方法: 默认end = '\n' a b c 如果end = ' ' a b c sep: 默认是空格' ' 表示两个字符之间用什 ...
- 6.python
最早的'密码本' ascii 涵盖了英文字母大小写,特殊字符,数字.01010101ascii 只能表示256种可能,太少,创办了万国码 unicode 16表示一个字符不行,32位表示一个字符. A ...
- java mongodb 增删改查 工具类
package com.jttx.demo; import com.mongodb.*; import com.mongodb.util.JSON; import java.net.Unkno ...
- javaEE(6)_JSP
一.什么是JSP 1.JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术,只用JSP就可以开发动态web资源. 2.为什么J ...
- TCP头校验和计算算法详解
我就不管是按“位”(bit)取反相加,还是 按“1的补码”相加了,总之就是把需要进行校验的“字串”加(+)起来,把这相加的 结果取反当做“校验和” (Checksum), 比如,相加的结果是0101, ...
- 将Xcode的本地代码push到github仓库上
1.首先,你得有一个github账号,如果没有的话就去注册一个,通过下面图片的方式创建一个github仓库. 2.创建仓库后填写相关的信息,比如说仓库名等. 3.在xcode上进行设置,添加远程git ...