• vector相关


    1. 构造

    空vector:

    • vector(): 空vector

    n个元素:

    • vector(int size): n个元素位置
    • vector(int size, const T &t): n个元素,均初始化为t

    复制构造:

    • vector(const vector &): 复制构造
    • vector(begin, end): 复制区间构造

    移动构造

    • vector(vector &&);

    2. 访问元素

    带边界检查:

    • reference at(size_type pos): 返回元素引用
    • const_reference at(size_type pos) const: 返回元素的常引用

    不带边界检查:

    • reference operator[](size_type pos)
    • const_reference operator[](size_type pos) const

    front:

    • reference front(): c.front() 跟 *c.begin() 一样
    • const_reference front() const

    back:

    • reference back(): c.back() 跟 *std::prev(c.end()) 一样
    • const_reference back() const

    data:

    • T *data(): 返回底层存储数据的内存的开始地址,有效地址为 [data(), data() + size())
    • constexpr const T *data();

    3. 容量

    • bool empty() const: begin() == end()
    • size_type size() const: 元素个数
    • max_size(): 可支持的最大元素个数,受限于系统和库的实现。
    • void reserve(size_type new_cap): 增加可存放元素的数量
    • size_type capacity() const: 当前已申请的空间可支持的元素数量
    • void shrink_to_fit(): 请求移除未使用的空间

    4. 操作容器

    • void clear(): 删除所有元素,size()返回0

    插入:

    • iterator insert(iterator pos, const T &value): 在pos位置插入 value
    • iterator insert(const_iterator pos, const T &value)
    • iterator insert(const_iterator pos, T &&value);
    • iterator insert(iterator pos, first, end): 在pos之前插入[first, end)
    • iterator insert(iterator pos, std::initializer_list<T> ilist): 使用初始化列表插入

    原地新建:

    • iterator emplace(const_iterator pos, Args &&... args);

    删除元素:

    • iterator earse(iterator pos): 删除pos位置的元素
    • iterator earse(iterator first, iterator last): 删除 [first, last)之间的元素

    尾部插入:

    • void push_back(const T &value);
    • void push_back(T &&value);
    • void emplace_back(Args &&... args);
    • reference emplace_back(Args &&... args);

    删除最后的元素:

    • void pop_back();

    调整元素个数:
    小于当前个数的话,调整到目标个数;
    大于当前个数的话,默认构造或者拷贝构造

    • void resize(size_type count);
    • void resize(size_type count, T value = T());
    • void resize(size_type count, const value_type &value);

    交换两个容器的内容:

    • void swap(vector &other);
  • 相关阅读:
    还得还得学啊
    感觉自己写的东西很死板啊
    好烦啊,不知道选哪个?
    222
    111
    愁人啊
    ssm+ajax实现登陆
    ssm框架搭建
    抽象类与接口
    代理设计模式
  • 原文地址:https://www.cnblogs.com/suntus/p/15087094.html
Copyright © 2020-2023  润新知