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

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

四、容器缺点:

未完待续!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值