• STL之vector函数详解


    构造函数&析构函数

    Vector的构造函数和析构函数
    vector<Elem> c 产生一个空vector,其中没有任何元素
    vector<Elem> c1(c2) 产生另一个同型vector的副本(所有的元素都被拷贝)
    vector<Elem> c(n) 利用元素的default构造函数产生一个大小为n的vector
    vector<Elem> c(n,elem) 产生一个大小为n的vector,每个元素值都是elem
    vector<Elem> c(beg, end) 产生一个vector,以区间[beg, end)做为元素初值
    c.~vector<Elem>() 销毁所有元素,并释放内存

    非变动性操作

    Vector的非变动性操作
    c.size() 返回容器的大小
    c.empty() 判断容器是否为空,等价于size()==0,但可能更快
    c.max_size() 返回容器最大的可以存储的元素
    c.capacity() 返回重新分配空间前所能容纳的元素最大数量
    reserve() 如果容量不足,扩大之
    c1 == c2 判断c1 是否等于c2
    c1 != c2 判断c1是否不等于c2
    c1 < c2 判断c1 是否小于c2
    c1 > c2 判断c1 是否大于c2
    c1 <= c2 判断c1是否小于等于c2
    c1 >= c2 判断c1是否大于等于c2

    赋值操作

    Vectors的赋值操作
    c1 = c2 将c2的全部元素赋值给c1
    c.assign(n, elem) 复制n个elem,复制给c
    c.assign(beg, end) 将区间[beg;end)内的元素赋值给c
    c1.swap(c2) 将c1和c2元素互换
    swap(c1,c2) 同上,此为全局函数

    直接存取操作

    直接存取vectors元素的各项操作
    c.at(idx) 返回索引idx标示的元素,如果idx越界,抛出异常
    c[idx] 返回索引idx标示的元素,不进行范围检查
    c.front() 返回第一个元素。不检查第一个元素是否存在
    c.back() 返回最后一个元素。不检查最后一个元素是否存在
    备注:除了at()函数,其他函数发生越界,会引发未定义行为

    安插&移除操作

    Vector的安插、移除相关操作
    c.insert(pos,elem) 在pos位置上插入一个elem副本,并返回新元素位置
    c.insert(pos,n,elem) 在pos位置上插入n个elem副本,无返回值
    c.insert(pos,beg,end) 在pos位置上插入区间[beg,end)内的所有元素的副本
    没有返回值
    c.push_back(elem) 在尾部添加一个elem副本
    c.pop_back() 移除最后一个元素,无返回值
    c.erase(pos) 移除pos位置上的元素,返回下一个元素的位置
    c.erase(beg, end) 移除[beg, end)区间内的所有元素,
    返回下一个元素的位置
    c.resize(num) 将元素数量改为num(如果size()变大了,
    多出来的新元素都需以default构造函数完成)
    c.resize(num,elem) 将元素数量改为num(如果size()变大了,
    多出来的新元素都elem的副本)
    c.clear() 移除所有元素,将容器清空
    备注:安插和移除元素,都会使“作用点”之后的各个元素的iterator等失效,若发生内存重新分配,该容器身上的所有iterator等都会失效

  • 相关阅读:
    html使用网络图片防盗问题解决
    【HC89S003F4开发板】 8c转义成汇编工程
    【HC89S003F4开发板】 7ASM&C混合编程
    【HC89S003F4开发板】 2调度器
    jquery 基础
    React 中import时如何正确使用花括号'{ }',以及default,export的用法注意事项
    React的小知识点
    TCP建立连接三步握手
    pdo操作基础
    php -- 取路径:getcwd()、__DIR__、__FILE__ 的区别【转】
  • 原文地址:https://www.cnblogs.com/jinxiang1224/p/8468419.html
Copyright © 2020-2023  润新知