首页 > 试题广场 >

下列关于C++容器描述错误的是?()

[不定项选择题]

下列关于C++容器描述错误的是?()

  • list类型支持双向顺序访问,在list中任何位置插入删除都很快

  • vector类型在每次调用pushback函数时都在栈上开辟新内存

  • deque类型支持快速顺序访问,在头尾插入/删除速度很快

  • list类型支持双向顺序访问,在list中任何位置插入删除都很快

deque:双端队列。支持快速随机访问。在头尾位置插入/删除速度很快。
发表于 2021-06-21 22:18:40 回复(0)
list底层是双向链表,所以可以双向访问,如果是顺序的话,只能通过指针的移动,所以随机访问时间复杂度是O(n),但插入删除效率高;
deque是双向队列,队头队尾都能插入删除;
C++的vector的一个特点就是内存只会增不会小,每次元素是都是紧挨着上一个元素存放的,所以每次存放元素都需要分配空间、复制元素、撤销旧空间,很麻烦。后来就实现每次为vector分配比申请的空间还大一点的空间。
发表于 2022-04-20 21:37:17 回复(0)
1. 如果程序要求随机访问元素,则应使用 vector 或 deque 容器。
2. 如果程序必须在容器的中间位置插入或删除元素,则应采用 list 容器。
3. 如果程序不是在容器的中间位置,而是在容器首部或尾部插入或删除元素,则应采用 deque 容器
发表于 2021-06-23 13:41:15 回复(0)