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

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

运行结果如下图:
《STL六大组件之容器篇(序列式容器vector)》

四、容器缺点:

未完待续!

    原文作者:Jeeper_
    原文地址: https://blog.csdn.net/Jeeper_/article/details/50414847
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞