构造函数&析构函数

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等都会失效

STL之vector函数详解相关推荐

  1. STL 之 list 容器详解

    STL之list容器详解 List 容器 list是C++标准模版库(STL,Standard Template Library)中的部分内容.实际上,list容器就是一个双向链表,可以高效地进行插入 ...

  2. STL中map和string, vector 用法详解

    1. map 用法详解 std map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成 ...

  3. [学习C++ ]C++ STL 全排列函数详解(排列组合与匹配算法)--1

    一.概念 从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列.当m=n时所有的排列情况叫全排列.如果这组数有n个,那么全排列数为n!个. 比如a ...

  4. STL 之 deque容器详解

    Deque 容器 deque容器是C++标准模版库(STL,Standard Template Library)中的部分内容.deque容器类与vector类似,支持随机访问和快速插入删除,它在容器中 ...

  5. C++ STL容器 —— array 用法详解

    C++ STL容器 -- array 用法详解 写在前面:近期正在学习C++的STL容器,因此在这里做一下日志记录,主要介绍一些容器基本成员函数的用法, 配上实际用例,并不涉及原理.但别人的博客终究是 ...

  6. bind() c语言,c/c++ 标准库 bind 函数详解

    bind函数定义在头文件 functional 中.可以将 bind 函数看作一个通用的函数适配器,它接受一个可调用对象,生成一个新的可调用对象来"适应"原对象的参数列表. bin ...

  7. C++ find函数详解

    C++ find函数详解 C++的find函数提供了一种对vector.string类型数据进行查找的方法. 首先是对vector的查找: int main() {vector<int> ...

  8. OpenCV 图像卷积:cv.filter2D() 函数详解

    API 照例,我们搬一下官网的 API: C++ void cv::filter2D(InputArray src,OutputArray dst,int ddepth,InputArray kern ...

  9. C++中的结构体vector排序详解

    C++中的结构体vector排序详解 使用sort函数对一个vector很常用,前提是通文件中必须包含#include ,但是针对结构体vector排序则需要进行一定的改动.具体事例如下所示: // ...

最新文章

  1. 淘宝获取单笔订单信息服务端调用API及流程
  2. gridview列 数字、货币和日期 显示格式
  3. 搞事情?!2020云·创季来啦,量子位带你领略云产业的耳目一新!
  4. SQL Server 2005:你应该知道的13件事情
  5. 计算机视觉形态学之膨胀、腐蚀、开运算、闭运算、顶帽、黑帽和形态学梯度
  6. boost::mp11::mp_invoke_q相关用法的测试程序
  7. react 使用 leaflet 百度地图_【React】react项目中应用百度地图添加起始点绘制路线...
  8. 安卓系统开机过程中logo和动画
  9. strassen矩阵乘法 java_Strassen 矩阵算法 Java 实现
  10. quartus仿真15:全加器和半加器及如何生成符号文件
  11. Android的Service组件
  12. python的shutil模块是内置的_python内置模块~shutil
  13. atitit 软件框架类库设计的艺术.docx 目录 1. index 1 2. 第2章 设计api的动力之源 14 2 2.1. .1 分布式开发 14 2 2.2. 2.2 模块化应用程序 16
  14. 计算机VFP基础知识,VFP基础教程章数据库系统基础知识4
  15. Dbf文件转Excel
  16. html5小球互相碰撞,HTML5相互碰撞散开的小球
  17. oracle中的取余函数MOD
  18. linux shell获取当前脚本所在目录
  19. 史上最全的正则表达式-匹配
  20. 豆瓣评分9.3,登榜热搜26次!电视剧《觉醒年代》为何能做到深入人心?

热门文章

  1. 浅谈——工科生如何撰写学术论文
  2. 程序员的发展之路一(转)
  3. 网络协议-语义、语法和时序
  4. 【原创】产品型IT公司向服务型公司转型
  5. pixi 小游戏_PIXI兼容微信小游戏
  6. Eclipse 一直 invoking Maven Project Bulider 问题
  7. Java_Map_Map详解
  8. python对PDF分割、合并、裁剪等
  9. 干货笔记,数据仓库工具箱
  10. 每周工作总结-记录总结自己遇到问题及学习内容,及时分析,找到不足,让自己不断进步