nynw.net
当前位置:首页 >> C++ vECtor和list的区别 >>

C++ vECtor和list的区别

C++ STL 提供了3个序列容器 :vector, deque, list vector 中的元素是顺序存放的,所以随机访问很快,但是要插入和删除,这个时间复杂度就很高了,vector初始化时有一个capacity,如果元素个数超出capacity,那vector就会重新分配一个新的空间,并...

vector* a;这里a是一个指针,指向的是vector类型,vector类型是元素类型为T的顺序容器 vector a,则vector元素类型为T*,即每个位置存储的是指针

1.vector数据结构vector和数组类似,拥有一段连续的内存空间,并且起始地址不变。因此能高效的进行随机存取,时间复杂度为o(1);但因为内存空间是连续的,所以在进行插入和删除操作时,会造成内存块的拷贝,时间复杂度为o(n)。另外,当数组中内存...

主要区别: 1 是否支持随机访问: vector支持下标直接访问,理论上事件复杂度为O(1);list无法随机访问中间的元素,只能从两头开始遍历,逐个获龋 2 内存分布: vector可以看成是内存连续的,list的内存则由指针连接而成;vector每次扩大内存都...

这两个网站你去看下就全懂了... 这个是list的:http://www.cplusplus.com/reference/list/list/?kw=list 这个是vector的:http://www.cplusplus.com/reference/vector/vector/?kw=vector

C++ STL 提供了3个序列容器 :vector, deque, list vector 中的元素是顺序存放的,所以随机访问很快,但是要插入和删除,这个时间复杂度就很高了,vector初始化时有一个capacity,如果元素个数超出capacity,那vector就会重新分配一个新的空间

vector 和built-in数组类似,它拥有一段连续的内存空间,并且起始地址不变,因此它能非常好的支持随即存取,即[]操作符,但由于它的内存空间是连续的, 所以在中间进行插入和删除会造成内存块的拷贝,另外,当该数组后的内存空间不够时,需要重...

总之,如果需要高效的随机存取,而不在乎插入和删除的效率,使用vector; 如果需要大量的插入和删除,而不关心随机存取,则应使用list。

放的,所以随机访问很快,但是要插入和删除,这个时间复杂度就很高了,vector初始化时有一个capacity,如果元素个数超出capacity,那vector就会重新分配一个新的空间

C++头文件之C、传统C++#include//设定插入点#include//字符处理#include//定义错误码#include//浮点数处理#include//文件输入/输出#include//参数化输入/输出#include//数据流输入/输出#include//定义各种数据类型最值常量#include//定义本地...

网站首页 | 网站地图
All rights reserved Powered by www.nynw.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com