一、vector概述:
传统意义上的数组为静态空间,一旦配置大小将不能改变。而vector是动态空间的数组,其内部机制会自行扩充以容纳新的元素。所以使用时不用再担心数组不够用而定义一个超大空间的数组,vector可以更合理和灵活的应用空间。
二、vector常用函数介绍:
iterator begin(); //返回开始位置迭代器指针
iterator end(); //返回结束位置迭代器指针
reference front(); //返回第一个元素的引用
reference back(); //返回最后一个元素的引用
size_type size(); //动态数组现有元素个数
size_type capacity(); //动态数组容量
bool empty(); //是否为空
void push_back(const value_type& __x); //插入数据至动态数组尾部
void pop_back(); //删除最后一个元素(注意此函数没有返回值,如果删除前要获取返回值需先调用back()或者end()函数)
iterator insert(iterator __position, const value_type& __x); //在__position的位置插入元素
iterator erase(iterator __position); //删除__position位置的元素
void clear(); //清空整个vector
//重载运算符
const_reference operator[](size_type __n) const //重载[]运算符,可使用数组形式访问元素
三、talk is cheap,show me the code:
#include <vector>
#include <iostream>
#include <stdlib.h>
using namespace std;
//打印函数
void print(vector<int >& print_)
{
//输出动态数组所有元素个数
cout<< "size: "<< print_.size()<< endl;
//输出动态数组容量
cout<< "capacity: "<< print_.capacity()<< endl;
for(int i= 0;i< print_.size();i++)
{
//重载的[]运算符可以使用类数组下标方式访问vector
cout<<i<< "th "<< print_[i]<< endl;
}
cout<< "-----------print end----------"<< endl;
}
int main()
{
vector<int> vc;
//插入5个元素
for(int i= 0;i< 5;i++)
{
vc.push_back(i);
}
print(vc);
//在头部位置插入元素9
vc.insert(vc.begin(),9);
print(vc);
//删除第三个元素(下标从0开始)
vc.erase(vc.begin()+3);
//弹出最后一个元素
vc.pop_back();
print(vc);
vc.clear();
print(vc);
return 1;
}
运行结果如下图:
四、容器缺点:
未完待续!