一、向量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;
}