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

C++ list vECtor 和 数组 的区别

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

vector遍历较快, list插入删除快 要经常修改数据的话用list,不经常修改,但经常访问用vector

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

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

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

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

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

数组时,a[]没有初始化;而你的vectora(40,1),则全部初始化为1. 偷懒的话,可以用c++的方法初始化如下: int a[40]; std::fill(a, a+40, 1);或者干脆老实地: int a[40];for (int i = 0; i < 40; ++i) a[i] = 1;这样array和vector的结果就会相同~

vector中没有像这样直接赋值的办法,如果一定要的话需要经过两步: int a[4]={0,10,22,3}; std::vector array(a, a + 4); 或者是三步: int a[4]={0,10,22,3}; std::vector array; std::copy(a, a+4, std::back_inserter(array)); // 必须#include

不是.. a3 和 a4 都是 对象.. a3 的 类型为 std::vector a4 的 类型为 std::array C++中,只有原生数组的变量名 可以表示 数组的首地址,例如 double a5[5]; a5可以表示首地址

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