STL:vector
用于实现数组的功能,相当于在数组的基础上封装了一些常用的功能
push_back在尾部添加一个元素
pop_back在尾部删除一个元素
clear清空所有的元素
at按索引访问某个位置的元素
front返回头元素
back返回尾元素
size返回元素的个数
capacity返回当前容量
resize改变容量的大小
insert在中间插入元素
erase删除中间的元素
vector和普通的数组一样,具有一个容量的概念。可以推断,vector内部是有一个缓冲区来存储元素的。类似这样的代码:
template <typename T>
class vector
{
private:
T* m_buffer;
int m_capacity;
};
可见,vector内容上还是数组,只是外在形式上比单纯的数组更易于使用了。它对外封装了前面所列的接口函数,使得读者非常容易使用
int main()
{
vector <int> arr(128); //capacity:128
arr.clear(); //size=0
arr.push_back(1); //capacity ,size:1 效率因素
arr.push_back(2); //capacity ,size:2 效率因素
int capacity=arr.capacity();//容量:128
int size=arr.size();//大小:128已经包含128个元素
arr.[0]=1;
arr.[1]=122;
arr.at(2)=123;
vector<int>::iterator iter;
for(iter=arr.begin();iter!=arr.end();iter++)
{
int &value=*iter;
printf("%d",value);
}
return 0;
}