vector的应用(元素遍历、插入、删除、交换等)

这里主要是对vector容器的一些常见应用的总结。至于vector的构造函数及初始化可以参考http://blog.csdn.net/lsh_2013/article/details/21191289,这里不再赘述。

元素的遍历

用迭代器访问vector元素

#include <vector>
#include <iostream>
using namespace std;
int main(void)
{
	vector<int> v;
	v.push_back(42);
	v.push_back(51);
	v.push_back(69);
	vector<int>::iterator i,iend;
	iend=v.end();
	int j;
	for(i=v.begin(),j=0; i!=iend; i++,j++)
		cout<<"v[" << j << "] = " << *i<< endl;
	return 0;
}

元素的插入

iterator insert(iteratorpos, const T& x);//在迭代器pos所指的元素前面插入一个元素x

#include <vector>
#include <iostream>
using namespace std;
int main(void)
{
	vector<int> v;
	v.push_back(6);
	v.push_back(7);
	v.push_back(8);
	v.push_back(10);
	v.insert(v.begin() + 3, 9);  //在元素的前面插入
	v.insert(v.begin(), 5);      //插入为首元素
	v.insert(v.end(), 11);       //插入为末元素
	for(int i = 0; i < v.size(); i++)
		cout << "v[" << i << "] = " << v[i] << endl;
	return 0;
}

元素的删除

1)iterator erase(iterator pos);//删除迭代器pos所指的元素

2)iterator erase(iterator first, iterator last);//删除迭代区间[first,last)的所有元素

#include <iostream>
#include <vector>
using namespace std;
int main ()
{
	vector<int> myvector;
	for (int i=1; i<=10; i++)
		myvector.push_back(i);
	//删除第个元素
	myvector.erase (myvector.begin()+5);
	//删除前个元素
	myvector.erase (myvector.begin(),myvector.begin()+3);
	cout << "myvector contains:";
	for (unsigned i=0; i<myvector.size(); ++i)
		cout << ' ' << myvector[i];
	cout << '\n';
	return 0;
}

元素的反向遍历

#include <vector>
#include <iostream>
using namespace std;
int main(void)
{
	vector<int> v;
	v.push_back(1);
	v.push_back(3);
	v.push_back(5);
	v.push_back(7);
	v.push_back(9);
	vector<int>::reverse_iterator ri,riend;
	riend=v.rend();
	for(ri=v.rbegin();ri!=riend;ri++)
		cout << *ri << endl;
	return 0;
}

Vector的交换

void swap(vector& x); //两个vector容器的元素交换

#include <iostream>
#include <vector>
using namespace std;
int main ()
{
	vector<int> v1 (2,10);   //10 10
	vector<int> v2 (3,30);  //30 30 30
	cout << "v1 contains:";
	for (unsigned i=0; i<v1.size(); i++)
		cout << ' ' << v1[i];
	cout << '\n';
	cout << "v2 contains:";
	for (unsigned i=0; i<v2.size(); i++)
		cout << ' ' << v2[i];
	cout << '\n';
	v1.swap(v2);//交换
	cout<<"交换后"<<endl;
	cout << "v1 contains:";
	for (unsigned i=0; i<v1.size(); i++)
		cout << ' ' << v1[i];
	cout << '\n';
	cout << "v2 contains:";
	for (unsigned i=0; i<v2.size(); i++)
		cout << ' ' << v2[i];
	cout << '\n';
	return 0;
}

其他常用的函数

1)bool empty();

//判断vector容器是否为空。若容器没有一个元素则返回true,否则返回false。

2)size_type size();

//当前vector容器的实际元素个数。

3)size_typemax_size();

//系统所允许的vector容器的最大元素个数。

4)size_typecapacity();

//当前可容纳vector元素的个数。

5)reference front()

//vector容器的首元素(引用),要求vector不为空。

6)reference back();

//返回vector容器的末元素(引用),要求vector不为空。

7)void pop_back();

//删除末尾的一个容器元素。

此为本人原创,转载请注明出处:http://blog.csdn.net/lsh_2013/article/details/46731331

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-09-29 06:03:06

vector的应用(元素遍历、插入、删除、交换等)的相关文章

简单顺序表的插入,删除,指定位置,指定元素的插入删除操作

头文件 SeqList.h #ifndef __SEQLIST_H__ #define __SEQLIST_H__ #include<stdio.h> #include<string.h> #include<assert.h> #define MAX_SIZE 10 typedef int DataType; typedef unsigned int size_t; typedef struct SeqList { DataType array[MAX_SIZE]; s

「C语言」单链表/双向链表的建立/遍历/插入/删除

最近临近期末的C语言课程设计比平时练习作业一下难了不止一个档次,第一次接触到了C语言的框架开发,了解了View(界面层).Service(业务逻辑层).Persistence(持久化层)的分离和耦合,一种面向过程的MVC的感觉. 而这一切的基础就在于对链表的创建.删除.输出.写入文件.从文件读出...... 本篇文章在于巩固链表的基础知识(整理自<C语言程序设计教程--人民邮电出版社>第十章),只对链表的概念及增删改查作出探讨,欢迎指教. 一.链表结构和静态/动态链表 二.单链表的建立与遍历

转 :asp教程.net c#数组遍历、排序、删除元素、插入、随机元素 数组遍历

asp教程.net c#数组遍历.排序.删除元素.插入.随机元素数组遍历 short[] sts={0,1,100,200};for(int i=0;i<sts.lenght;i++){  if(sts[i]>50) {  .....  }} 数组随机元素 public  hashtable  noorder(int count)         {             arraylist mylist = new arraylist();             hashtable ha

c++如何遍历删除map/vector里面的元素

新技能Get! 问题 对于c++里面的容器, 我们可以使用iterator进行方便的遍历. 但是当我们通过iterator对vector/map等进行修改时, 我们就要小心了, 因为操作往往会导致iterator失效, 之后的行为都变得不可预知. 比如: #include <iostream> #include <vector> using namespace std; int main() { vector<int> a = {12, 23, 34, 45, 56,

顺序表 初始化 插入 删除 查找 合并 交换 判断为空 求长度

#include <stdio.h> #include <stdlib.h> #define OK 1 #define TRUE 1 #define ERROR -1 #define FALSE -1 #define OVERFLOW -2 #define ElemType int #define Status int typedef int ElemType typedef int Status #define LEN sizeof(SqList) #define MLC (Li

[转]Java_List元素的遍历和删除

原文地址:http://blog.csdn.net/insistgogo/article/details/19619645 1.创建一个ArrayList [java] view plain List<Integer> list = new ArrayList<Integer>(); 2.List常用的遍历方法有三种: (1)下标循环 [java] view plain for (int i = 0, len = list.size(); i < len; i++) { Sy

JavaScript之jQuery-3 jQuery操作DOM(查询、样式操作、遍历节点、创建插入删除、替换、复制)

一.jQuery操作DOM - 查询 html操作 - html(): 读取或修改节点的HTML内容,类似于JavaScript中的innerHTML属性 文本操作 - text(): 读取或修改节点的文本内容,类似于JavaScript中的textContent属性 值操作 - val(): 读取或修改节点的value属性值,类似于 JavaScript 中的value值 属性操作 - attr(): 读取或者修改节点的属性 - removeAttr(): 删除节点的属性 二.jQuery操作

java 集合遍历时删除元素

本文探讨集合在遍历时删除其中元素的一些注意事项,代码如下 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 import java.util.ArrayList; import java.util.Iterator; import java

Java HashMap 如何正确遍历并删除元素

(一)HashMap的遍历 HashMap的遍历主要有两种方式: 第一种采用的是foreach模式,适用于不需要修改HashMap内元素的遍历,只需要获取元素的键/值的情况. HashMap<K, V> myHashMap; for (Map.entry<K, V> item : myHashMap.entrySet()){ K key = item.getKey(); V val = item.getValue(); //todo with key and val //WARNI