vector专题
《C++程序设计语言(第4部分:标准库)》
31.4 容器
31.4.1 vector
31.4.1.1 vector和增长
- 重要知识点:vector的内存布局
- vector不会在添加每个元素时都分配内存,而是在超出容量时才进行一次重新分配。
- C++标准并未指定超出容量时向量的增长幅度,但很多C++实现都是增加大小的一半
- 容量的概念令指向vector元素的迭代器只有在真正发生重分配时才会实现
31.4.1.1 vector和嵌套
- vector的优势
 - vector的元素是紧凑存储的:所有元素都不存在额外的内存开销
 - vector的遍历非常快
 - vector支持简单高效的随机访问
- 考虑二维矩阵的存储,对比以下两种解决方案,可见数据结构紧凑存储的重要性:
 - 使用vector<vector>:需要进行多次自由存储空间的分配,访问元素需要进行二次间接寻址
 - 使用vector:仅需要一次自由存储空间的分配,访问元素仅需要进行一次间接寻址
31.4.1.3 vector和数组(或array)
- 内置数据(或array)可将数据存储在栈上,对比vector存储在自由存储空间,存在一定性能上的优势
- 在允许使用未初始化元素的情况下,使用内置数据(或array)可能更优(如从标准输入读取数据存储到数组元素中)
31.4.1.4 vector和string
- vector是一种保存值的通用机制,并不对保存的值之间的关系做任何假设
- string设计的目的就是保存字符序列,它认为字符之间的关系非常重要
问题列表
- vector与数组的区别:C++中数组和vector
- vector在插入和删除时需要注意什么
 - 插入数据时,由于内存可能会进行重分配,那么插入数据前保存的迭代器可能会失效
 - 删除数据后,内存并不会回收,只是将需要删除的元素覆盖
vector专题的更多相关文章
- 【算法专题】工欲善其事必先利其器—— C++ STL中vector(向量/不定长数组)的常用方法总结
		#include<iostream> #include<cstdio> #include<string> #include<vector>//不定长数组 ... 
- 五:Java之Vector类专题
		据说期末考试要考到Vector 这个类,出于复习须要在这里就要好好整理下这个类了. 一.基本概念 Vector 是可实现自己主动增长的对象数组. java.util.vector提供了向量类(vect ... 
- STL专题·vector容器
		1.构造函数 vector():创建一个空vector vector(int nSize):创建一个vector,元素个数为nSize (vector<int> a(10);) vecto ... 
- [kuangbin带你飞]专题十 匹配问题 二分匹配部分
		刚回到家 开了二分匹配专题 手握xyl模板 奋力写写写 终于写完了一群模板题 A hdu1045 对这个图进行 行列的重写 给每个位置赋予新的行列 使不能相互打到的位置 拥有不同的行与列 然后左行右列 ... 
- DP专题训练之HDU 2955 Robberies
		打算专题训练下DP,做一道帖一道吧~~现在的代码风格完全变了~~大概是懒了.所以.将就着看吧~哈哈 Description The aspiring Roy the Robber has seen a ... 
- 三代PacBio reads纠错 - 专题
		三代纠错的重要性不言而喻,三代的核心优势就是长,唯一的缺点就是错误率高,但好就好在错误是随机分布的,可以通过算法解决,这也就是为什么现在有这么多针对三代开发的纠错工具. 纠错和组装是分不开的,纠错就是 ... 
- 跟我一起学STL(2)——vector容器详解
		一.引言 在上一个专题中,我们介绍了STL中的六大组件,其中容器组件是大多数人经常使用的,因为STL容器是把运用最广的数据结构实现出来,所以我们写应用程序时运用的比较多.然而容器又可以序列式容器和关联 ... 
- [kuangbin带你飞]专题十 匹配问题
		A-L 二分匹配 M-O 二分图多重匹配 P-Q 二分图最大权匹配 R-S 一般图匹配带花树 模板请自己找 ID Origin Title 61 / 72 Problem A HD ... 
- [kuangbin带你飞]专题十 匹配问题 二分图多重匹配
		二分图的多重匹配问题不同于普通的最大匹配中的"每个点只能有最多一条边" 而是"每个点连接的边数不超过自己的限定数量" 最大匹配所解决的问题一般是"每个 ... 
随机推荐
- 06_Python异常处理机制
			1.异常概述 1.什么是错误: 错误是指有逻辑或语法等导致一个程序无法正常执行的问题 2.什么是异常: 异常时程序出错时标识的一种状态,程序不会向下执行而转去调用此函数的地方等待处理错误并恢复 ... 
- webapi上传图片的两种方式
			/// <summary> /// App上传图片 /// </summary> /// <returns>返回上传图片的 ... 
- 取得min和max之间包括端点的随机整数
			产生随机数的函数用处不少,写一个放博客里备用,函数如下: /** * get a random integer between min and max * @param min * @param ma ... 
- vueJs 安装
			1.下载nodeJs 可前往 https://www.cnblogs.com/takeyblogs/p/13600124.html 这里下载 2.由于 npm 安装速度慢,本教程使用了淘宝的镜像及其命 ... 
- parseQueryString
			var parseQueryString = function (url) { var reg = /([^\?\=\&]+)\=([^\?\=\&]*)/g; var o ... 
- JAVA JDK 环境变量配置 入门详解 - 精简归纳
			JAVA JDK 环境变量配置 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 9 / 13 转载请注明出处!️ 目录 JAVA JDK 环境变量配置 入门详解 - 精简归纳 一.为什么j ... 
- [LeetCode]621. 任务调度器(贪心)
			题目 给定一个用字符数组表示的 CPU 需要执行的任务列表.其中包含使用大写的 A - Z 字母表示的26 种不同种类的任务.任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完.CP ... 
- 软件开发过程中常用的环境解释DEV FAT UAT PRO
			1.DEV Development environment 开发环境,用于开发者调试使用 2.FAT Feature Acceptance Test environment 功能验收测试环境,用于软件 ... 
- Codeforces1131G Most Dangerous Shark
			Description Original Problem Chinese Translation 大概就是给你一个间隔为1的多米诺序列,推倒一个多米诺骨牌有个花费,求推倒所有多米诺骨牌的最小花费 So ... 
- docker部署rockermq集群(docker-compose版本)
			此处采用docker-compose部署 rockermq主主集群模式 创建相关文件夹 此处创建的文件一一对应docker-compose.yml文件中的映射文件夹,酌情创建,主要需要创建配置文件夹. ... 
