首页 > 试题广场 >

说一说 vector 和 list 的区别,分别适用于什么场

[问答题]
说一说 vector 和 list 的区别,分别适用于什么场景?
区别:1、vector底层实现是数组,list是双向链表;2、vector支持随机访问,list不支持;3、vector是顺序内存,list不是;4、vector在中间节点进行插入删除会导致内存拷贝,list不会;5、vector一次性分配好内存,不够时才进行扩容,list每次插入新节点都会进行内存申请;6、vector随机访问性能好,插入删除性能差,list 随机访问性能差,插入删除性能好。 适用场景:需要高效的随机访问,而不在乎插入和删除的效率,使用vector;需要高效的插入和删除,而不在乎随机访问,则应使用list。
发表于 2022-08-10 10:01:38 回复(0)
引入计数方式:申请堆内存时,配备初始值1,有新对象调用加1,被释放减一
编辑于 2022-09-28 06:42:44 回复(0)
vector 底层实现是数组,支持随机访问,随机访问性能好,使用场景 :重随机访问,忽略插入删除 list 是双向链表,不支持随机访问,每次插入新节点都会进行内存申请,插入删除性能好,使用场景 :重插入删除,忽略随机访问
发表于 2023-11-11 21:25:01 回复(0)
1. 区别:主要是底层的数据存储形式不一样,一个是双向链表(非连续存储空间)、一个是数组(连续存储空间)。 2. 应用场景: =》list:支持高效的插入和删除(不需要移动其他数据) =》vector:支持高效的查询(随机访问)
发表于 2023-11-11 11:42:21 回复(0)
vector容器是一个数组容器,元素在内存中是连续存放的,支持随机访问,在数组尾端进行插入和删除是很快的,在其他地方是很费时 list容器是双向链表容器,元素在内存中的存储是不连续的,不支持随机访问,对元素的增删是很快的,但对元素遍历是很费时。
发表于 2023-09-13 18:36:26 回复(0)
区别: 1. vector 底层实现是数组,list是双向链表 2. vector 支持随机访问,list不支持 3. vector 是顺序内存,list 不是 4. vector 在中间节点进行插入删除需要内存拷贝操作,list不会 5. vector 一次性分配好内存,不够时才进行扩容,list每次插入新节点都会进行内存申请 使用场景: vector拥有一段连续的内存空间,因此支持随机访问,如果需要高效的随机访问,而不在乎插入和删除的效率,使用vector list 拥有一段不连续的内存空间,如果需要高效的插入和删除,而不关心随机访问,则应使用list 6. vector 随机访问性能好,插入删除性能差,list 随机访问性能差,插入删除性能好
发表于 2023-08-15 20:11:35 回复(0)
vector是底层实现是向量(数组),list是链表。vector适用于随机访问,list则使用于经常进行插入和删除操作的场景
发表于 2023-07-10 17:43:55 回复(0)
随机访问;高效删除插入
发表于 2023-02-27 21:20:33 回复(0)