标准模板库STL之vector

一、向量vector用于实现数组的功能(便于访问,不便于插入删除),相当于在数组的基础上封装了一些常用的功能。

函数功能 功能
push_back 在尾部添加一个元素
pop_back 在尾部删除一个元素
clear 清空所有元素
at 按索引访问某个位置的元素
front

                                                                               返回头元素

back 返回尾元素
size 返回元素的个数
capacity 返回当前容量
resize 改变容量的大小

二、要点:要明白vector内部的实现机制

       buffer:缓冲区

       capacity:缓冲区大小

       size:元素的个数

三、实例

#include<stdio.h>
#include<vector>
using namespace std;
int main(){
	vector<int> arr(128);
	int capacity=arr.capacity();//容量128 
	int size=arr.size();//大小:128,已经包含128个元素
	
	arr[0]=1;//arr是类不是数组
	arr[1]=122;
	arr.at(2)=123;
	
	for(int i=0;i<4;i++)
	printf("%d\n",arr[i]);
	
	return 0;
}  

四、capacity和size会动态增加

vector<int> arr(16);//capacity:16事先分配好缓冲区大小
arr.clear();//size=0

arr.push_back(1);//capacity:16  size=1
arr.push_back(2);//capacity:16  size=2

五、迭代器(内部类iterator)

#include<stdio.h>
#include<vector>
using namespace std;
int main(){
	vector<int> arr(128);
	arr.clear();
	
	int capacity=arr.capacity();//容量128 
	int size=arr.size();//大小:128,已经包含128个元素
	
	arr.push_back(1); 
	arr.push_back(2); 
	arr.push_back(3); 
	
	//迭代器遍历 
	vector<int>::iterator iter;
	for(iter=arr.begin();iter!=arr.end();iter++){
		int& value=*iter;
		printf("%d ",value);
	}
	
	return 0;
}  

猜你喜欢

转载自blog.csdn.net/zhao2chen3/article/details/85006570