STL容器 - vector

template<class T, class A = allocator<T> >
class vector {
public:

    //类型定义
    typedef A allocator_type;
    typedef A::size_type size_type;
    typedef A::difference_type difference_type;
    typedef A::reference reference;
    typedef A::const_reference const_reference;
    typedef A::value_type value_type;
    typedef T0 iterator;
    typedef T1 const_iterator;
    typedef reverse_iterator<iterator, value_type,
        reference, A::pointer, difference_type>
        reverse_iterator;
    typedef reverse_iterator<const_iterator, value_type,
        const_reference, A::const_pointer, difference_type>
        const_reverse_iterator;

    /*****************************************************/

    //构造函数
    explicit vector(const A& al = A());
    explicit vector(size_type n, const T& v = T(), const A& al = A());
    vector(const vector& x);
    vector(const_iterator first, const_iterator last,
        const A& al = A());

    /*----------------------------------------------------*/
    // 改变当前vecotr所分配空间的大小
    void reserve(size_type n);
    //获取vector最大容量  
    size_type capacity() const;
    //获取vector初始迭代器 
    iterator begin();
    //获取vector初始常迭代器,返回值类似于const型指针
    const_iterator begin() const;               
    //获取vector尾后指针,最后一个元素的下一个额指针
    iterator end();                             
    //获取vector尾后常指针
    iterator end() const;
    //获取反向初始迭代器,最后一个元素的迭代器
    reverse_iterator rbegin();
    const_reverse_iterator rbegin() const;
    //获取反向尾后迭代器,第一个元素的前一个
    reverse_iterator rend();
    const_reverse_iterator rend() const;
    //重新分配vector容器大小
    void resize(size_type n, T x = T());
    //返回容器元素个数
    size_type size() const;
    //返回vector的最大长度
    size_type max_size() const;
    //如果vector为空返回true
    bool empty() const;
    //返回vector分配器
    A get_allocator() const;
    //返回指定位置元素的引用
    reference at(size_type pos);
    const_reference at(size_type pos) const;
    //重载[]运算符
    reference operator[](size_type pos);
    const_reference operator[](size_type pos);
    //返回首元素的引用
    reference front();
    const_reference front() const;
    //返回尾元素的引用
    reference back();
    const_reference back() const;
    //压入尾元素
    void push_back(const T& x);
    //弹出尾元素
    void pop_back();
    //清空原有元素,copy指定元素到vector
    void assign(const_iterator first, const_iterator last);
    //清空元素指定长度为n
    void assign(size_type n, const T& x = T());
    //在指定位置插入元素,或者元素组
    iterator insert(iterator it, const T& x = T());
    void insert(iterator it, size_type n, const T& x);
    void insert(iterator it,
        const_iterator first, const_iterator last);

    //删除元素
    iterator erase(iterator it);
    iterator erase(iterator first, iterator last);
    void clear();
    void swap(vector x);
protected:
    A allocator;
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值