• stl.vector用法总结


    0 -- 内部类型定义
    vector在标准模块中的定义:
    template <class T, class Alloc = alloc>
    class vector
    {
    ......
    };
    typedef T value_type; vector的元素类型  
    typedef value_type * pointer; 指针类型  
    typedef const value_type * const_pointer; const指针类型  
    typedef value_type * iterator; 迭代器类型  
    typedef const value_type * const_iterator; const迭代器类型  
    typedef value_type & reference; 引用类型  
    typedef const value_type & const_reference; const引用类型  
    typedef size_t size_type; 用作vector下标索引以及容量大小的数值类型  
    typedef ptrdiff_t difference_type; 用作vector两个元素之间位置差距的数值类型  
    1 -- 构造函数
    vector<T>()

    构造空的vector实例,不包含任何内容
    vector<T>(const vector<T> & x)

    拷贝构造函数,使用实例x初始化
    vector<T>(size_type n)

    构造vector实例,使用n个T()构造的实例的变量初始化
    vector<T>(size_type n, const T& value)

    使用vector实例,并用n个T类型的实例数据初始化
    vector<T>(InputIterator begin, InputIterator end)

    构造vector实例,以迭代器[begin, end)指定的元素初始化
    2 -- 赋值函数
    vector<T> & operator = (const vector<T> & x)

    赋值函数,将一个vector赋值给当前变量
    void assign(size_type n, const T & val)

    用n个T类型的实例替换现有的元素
    void assign(InputIterator begin, InputIterator end)

    用迭代器[begin, end)指定的元素替换现有的元素
    3 -- 元素访问函数(迭代器、引用及访问方法)
    reference at(size_type n)

    返回第n个元素的引用
    const_reference at(size_type n)

    返回第n个元素的const引用
    reference operator[](size_type n)

    返回第n个元素的引用
    const_reference operator[](size_type n)

    返回第n个元素的const引用
    reference front()

    返回第一个元素的引用。(如果vector为空,使用导致coredump)
    reference back()

    返回最后一个元素的引用。(如果vector为空,使用导致coredump)
    const_reference front()

    返回第一个元素的const引用。(如果vector为空,使用导致coredump)
    const_reference back() const

    返回最后一个元素的const引用。(如果vector为空,使用导致coredump)
    iterator begin()

    返回的迭代器指向vector的第一个元素
    iterator end()

    返回的迭代器指向vector的“末端元素的下一个”。
    通常称为超出末端迭代器(off-the-end iterator),表明它指向了一个不存在的元素。如果vector为空,begin返回的迭代器与end返回的迭代器相同。
    const_iterator begin()

    返回const迭代器,指向vector的第一个元素
    const_iterator begin()

    返回const迭代器,指向vector的“末端元素的下一个”
    reverse_iterator rbegin()

    返回反向迭代器,指向vector的最后一个元素
    reverse_iterator rend()

    返回反向迭代器,指向vector第一个元素的前一个位置
    const_reverse_iterator rbegin() const

    返回const反向迭代器,指向vector的最后一个元素
    cosnt_reverse_iterator rend()

    返回const反向迭代器,指向vector第一个元素的前一个位置
    4 -- 添加元素函数
    void push_back(const T & x)

    新生成一个T类型数据,调用T的拷贝构造函数以x为模板初始化新变量,放入到vector的末尾。
    iterator insert(iterator pos, const value_type & x)

    在vector的pos位置处插入元素x。返回插入元素的迭代器。
    void insert(iterator pos, size_type n, const value_type & x)

    在vector的pos位置开始处插入n个元素x。
    void insert(iterator pos, InputIterator begin, InputIterator end)

    在vector的pos位置开始处插入迭代器[begin, end)指代的元素。
    inline void swap(vector<T>&x, vector<T> & y)

    非成员函数,交换两个vector的元素
    void reserve(size_type n)

    如果容量不足以容纳n个元素,则扩大。(该操作有可能修改vector,导致以前所有的迭代器和引用失效)
    void resize(size_type n)

    将元素数量改为n,如果vector因此变大了,多出来的新元素都需以元素类型的default构造函数构造完成
    void resize(size_type n, value_type x);

    将元素数量改为n,如果vector因此变大了,多出来的元素都是x的副本
    5 -- 删除函数
    void clear()

    删除vector中所有元素,清空容器。
    void pop_back()

    删除vector的最后一个元素
    iterator erase(iterator pos)

    删除迭代器pos指向的元素,返回原元素后一个元素在删除后的vector中的迭代器或者end()。
    iterator erase(iterator begin, iterator end)

    删除迭代器[begin, end)指代的元素,返回原范围元素后一个元素在删除后的vector中的迭代器或者end()。
    6 -- 比较函数
    inline bool operator == (const vector<T> & ls, const vector<T> & rs)

    非成员函数,判断两个vector是否相等。首先比较二者的元素个数是否相同;如果个数相同则遍历vector,调用元素的“==”运算符比较是否相同。
    inline bool operator != (const vector<T> & ls, const vector<T> & rs)

    非成员函数,判断两个vector是否不等。结果为对“==”运算符的取反。
    inline bool operator < (const vector<T> & ls, const vector<T> & rs)

    非成员函数,判断前者是否小于后者。遍历vector,返回第一对不满足“==”运算符的元素的“<”比较结果。
    inline bool operator > (const vector<T> & ls, const vector<T> & rs)

    非成员函数,判断前者是否大于后者。遍历vector,返回第一对不满足“==”运算符的元素的“>”比较结果。
    inline bool operator <= (const vector<T> & ls, const vector<T> & rs)

    非成员函数,判断前者是否"<="后者。结果为"!(rs < ls)"。
    inline bool operator >= (const vector<T> & ls, const vector<T> & rs)

    非成员函数,判断前者是否">="后者。结果为"!(ls < rs)"。
    7 -- 元素容量函数
    bool empty() const

    判断当前vector是否为空
    size_type size() const

    获取当前vector包含元素的个数
    size_type max_size() const

    返回vector可容纳元素的最大数量
    size_type capacity() const

    获取在不重新分配内存的情况下可容纳的元素最大数量
  • 相关阅读:
    if __name__ == 'main': 的作用和原理
    第四篇、Python文件处理
    第二篇*2、Python字符串格式化
    第三篇、Python函数
    第二篇*1、Python基本数据类型
    ping包,支持ip录入
    layui之弹出层--从父窗口传递数据到子窗口
    动态调用WebService
    c# 类的反射实例 (GetType().Invoke().GetMethod().CreateInstance())
    ASP.Net UpdatePanel控件 局部刷新 && 弹出提示信息
  • 原文地址:https://www.cnblogs.com/motadou/p/1615905.html
Copyright © 2020-2023  润新知