C++顺序容器vector、deque、list
1、容器元素类型
C++中大多数数据类型能够作为容器的元素类型。容器元素类型必须满足一下两个条件:支持赋值和复制操作。
所以没有元素是引用类型的容器,同一时候IO对象和auto_ptr也不能作为容器的元素类型。
2、vector容器的自增长
vector容器中存储的元素在内存中是连续存储的。假如容器中没有空间容纳新元素。此时因为元素必须连续存储以便索引訪问,所以不能在内存中随便找个地方存储这个新的元素,于是vector必须又一次分配空间。用于存放原来的元素和新加入的元素:存放在旧容器中的元素被拷贝到新的容器中,接着插入新的元素,最后撤销旧的存储空间。为了使vector容器实现高速的内存分配,事实上际分配的容量要比当前所需的空间多一些,vector容器预留这些空间,用于存放新的元素。
list容器中加入元素时。仅仅须要创建一个新的元素。然后将该元素连接到已经存在的链表中。不须要又一次分配存储空间,也不用复制不论什么已存在的元素。
3、vector、deque、list三种容器的特点
vector:支持高速随机訪问、可高效的在vector容器尾部加入删除数据
deque:支持高速随机訪问、可高效的在deque容器头部和尾部加入删除数据
list:支持顺序訪问,可是在不论什么位置插入删除元素都非常快
4、vector容器基本操作
- #include "stdafx.h"
- #include <string>
- #include <iostream>
- #include <vector>
- using namespace std;
- int main(int argc, char* argv[])
- {
- //vector定义并初始化
- vector<int> v1;
- for (int i=0;i<10;i++)
- v1.push_back(i+1);
- //使用迭代器遍历vector
- vector<int>::iterator iter=v1.begin();
- for (;iter!=v1.end();iter++)
- {
- cout<<*iter<<" ";
- }
- cout<<endl;
- return 0;
- }
C++顺序容器vector、deque、list的更多相关文章
- C++ 顺序容器 vector list deque 之比较
在C++标准库中定义了三种顺序容器类型:vector,list和deque.所谓顺序容器就是根据位置来存储和访问元素,元素的排列次序与元素的值无关,而是由元素添加到容器的次序决定的. vector的底 ...
- 第十篇:顺序容器vector,deque,list的选用规则
前言 常见的顺序容器主要有三种 - vector,deque,list.它们实现的功能相差不大,那么实际开发中该如何进行选择呢?本文将为你解答这个问题. 分析 由于这三种容器实现的数据结构原型不同(v ...
- 顺序容器vector,deque,list的选用规则
前言 常见的顺序容器主要有三种 - vector,deque,list.它们实现的功能相差不大,那么实际开发中该如何进行选择呢?本文将为你解答这个问题. 分析 由于这三种容器实现的数据结构原型不同(v ...
- C++ 顺序容器(vector,list、deque,stack,queue)
顺序容器的种类有:vector,list.deque 顺序容器适配器: stack //先进后出 栈 queue //先进先出 队列 priority_queue //也优先管 ...
- 【c++进阶:c++ 顺序容器vector,string,deque,list,forward_list,array常用性质】
常用5种顺序容器性质: https://blog.csdn.net/oil_you/article/details/82821833 关于deque https://www.cnblogs.com/L ...
- c++ 标准库的各种容器(vector,deque,map,set,unordered_map,unordered_set,list)的性能考虑
转自:http://blog.csdn.net/truexf/article/details/17303263 一.vector vector采用一段连续的内存来存储其元素,向vector添加元素的时 ...
- 2.1顺序容器-vector
vector 1) * :使用vector必须包含vector头文件.可变长的动态数组,支持随机访问,所有STL算法都可以对vector进行操作. ** :随机根据下标访问某个元素的时间是一个常数 ...
- 顺序容器:vector,deque,list
1.顺序容器:vector,deque,list 容器类共享公共接口,只要学会其中一种类型就能运用另一种类型.每种容器提供一组不同的时间和功能这种方案,通常不需要修改代码,秩序改变类型声明,每一种容器 ...
- C++ 顺序容器
<C++ Primer 4th>读书笔记 顺序容器内的元素按其位置存储和访问.容器类共享公共的接口,每种容器类型提供一组不同的时间和功能折衷方案.通常不需要修改代码,只需改变类型声明,用一 ...
随机推荐
- 创建线程安全的单例(ARC或 非ARC)
一:创建 宏 文件 SynthesizeSingleton.h SynthesizeSingleton.h #if __has_feature(objc_arc) // ARC Version #de ...
- “最大子序列和”算法 java
maxSubSum各自是最大子序列和的4中java算法实现. 第一种算法执行时间为O(N^3),另外一种算法执行时间为O(N^2),第三种算法执行时间为O(nlogn),第四种算法执行时间为线性N p ...
- HDU 2883 kebab(最大流)
HDU 2883 kebab 题目链接 题意:有一个烧烤机,每次最多能烤 m 块肉.如今有 n 个人来买烤肉,每一个人到达时间为 si.离开时间为 ei,点的烤肉数量为 ci,每一个烤肉所需烘烤时间为 ...
- Fiddler 扩展编程——oSession相关方法
// 修改session中的显示样式 oSession["ui-color"] = "orange"; // 移除http头部中的MQB-X5-Refer ...
- Codeforces Round #228 (Div. 1) C 贪心
嘎嘎,今天被一些事耽误了,可是还是A了几个题目,这道题还不错 题目链接: 题意:两个人玩游戏,有N堆纸牌,纸牌上有数字,A每次仅仅能取N堆中的 当中一个的顶部的 纸牌,B仅仅能取N堆中的当中一个底部 ...
- JSON path
https://github.com/itguang/gitbook-smile/blob/master/springboot-fastjson/fastjson%E4%B9%8BJSONPath%E ...
- Redis学习(1)--环境配置,安装JDK,MySQL,tomcat
Linux上安装jdk,mysql,tomcat安装 rpm命令: 相当于Windows的安装/卸载程序.可以进行程序的安装,更新,卸载,查看. 本地程序安装:rpm -ivh 程序名 本地程序查看: ...
- SXi5.5不识别硬件驱动的光盘定制
SXi5.5不识别硬件驱动的光盘定制~~RealTek8111E,Intel217V,Z97 AHCI [复制链接] gmx168 电梯直达 1# 发表于 2014-9-23 17:06 ...
- SSO之CAS + LDAP
本来主要详细是介绍CAS和LDAP整合实现单点登录的步骤. 1. 依<SSO之安装CAS Server>所述安装好CAS Server.2. 安装ApacheDS.安装好ApacheDS后 ...
- 掀开图片显示介绍的css效果
概述 主要运用到CSS3的3D transform等变换 详细 代码下载:http://www.demodashi.com/demo/10575.html 一.概述 1.主要运用到CSS3的3D tr ...