【学习笔记】C++高级程序设计:STL:vector

Vector

可变长的动态数组

必须包含头文件#include<vector>

支持随机访问迭代器

1、  根据下标随机访问某个元素的时间为常数

2、  在尾部添加速度很快

3、  在中间插入慢

 

所有STL算法都能对vector使用

Vector的成员函数

构造函数初始化

1、Vector(); 无参构造函数,将容器初始化为空的

2、Vector(int n); 将容器初始化成有n个元素

3、Vector(int n, const T &val); 假定元素类型是T,将容器初始化成有n个元素,每个元素的值都是val

4、Vector(iterator first , iterator last); 将容器初始化为与别的容器上区间[first,last)一致的内容

 

其他常用函数

成员函数

Void pop_back(); 删除容器末尾的元素

Void push_back(const T &val); 将val添加到容器末尾

Int size(); 返回容器中元素的个数

T &front();返回容器中第一个元素的引用

T &back();返回容器中最后一个元素的引用

 

简单一维动态数组实现

#include <iostream>
#include <vector>
using namespace std;
int main(){
	int i;
	int a[5]={1,2,3,4,5};
	//静态数组a 
	vector<int> v(5);
	//动态数组,初始化成5个元素 
	cout<<v.end()-v.begin()<<endl;
	//end()返回最后元素之后的位置,相减得到整个容器的大小为5 
	for(i=0;i<v.size();i++){
		v[i]=i;
		//对每个容器中的元素进行赋值 
	}
	v.at(4)=100;
	//at函数访问容器中的某个元素,第五个元素赋值为100 
	for(i=0;i<v.size();i++){
		cout<<v[i]<<",";
	}
	cout<<endl;
	
	vector<int> v2(a,a+5);
	//构造函数:
	//通过定义一个容器的起始位置和末尾位置,来初始化一个动态数组 
	v2.insert(v2.begin()+2,13);
	//insert函数将值,插入到对应的位置上,第三个元素值为13 
	for(i=0;i<v2.size();i++){
		cout<<v2.at(i)<<",";
	} 
	return 0;
} 


输出:

5

0,1,2,3,100,

1,2,13,3,4,5,

 

 

二维动态数组

Vector<vector<int>> v(3);

//v有3个元素,

//每个元素都是vector<int>容器

 

简单二维动态数组实现

#include <iostream>
#include <vector>
using namespace std;
int main(){
	vector<vector<int> >v(3);
	//定义了一个共有3行的二维动态数组 
	for(int i=0;i<v.size();++i){
		for(int j=0;j<4;j++){
			//每行共有j个元素 
			v[i].push_back(j);
		}
	}
	for(int i=0;i<v.size();i++){
		for(int j=0;j<v[i].size();++j){
			cout<<v[i][j]<<" ";
		}
		cout<<endl;
	}
	return 0;
} 


输出结果:

0 1 2 3

0 1 2 3

0 1 2 3

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值