STL六大组件之容器篇(序列式容器vector)

来源:互联网 发布:打开本机端口 编辑:程序博客网 时间:2024/06/01 09:21

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

运行结果如下图:
这里写图片描述

四、容器缺点:

未完待续!

0 0
原创粉丝点击