Type[] 和 std::array 分配在
栈 上
std::list、std::deque、std::vector 的
元素们分配在
堆 上
Type[] 和 std::array 在
编译时确定元素数量
std::list、std::deque、std::vector 可以
运行时动态调整元素数量
std::array 是 Type[] 的简单封装,提供诸如 operator=、operator==、operator<=> 等常用操作,以及仿stl容器的类型信息
std::vector 与 std::list 的差别就是课本上常说的
数组与链表的差别,前者元素是连续排列的,后者不是;而 std::deque 则介乎于两者之间,用链表存储分段连续的数组。
---------------------------------------------------------
STL容器有:
array(静态数组)、vector(动态数组)、forward_list(单链表)、list(双链表)、deque(双端队列);
set、multiset、map、multimap;
unordered_set、unordered_multiset、unordered_map、unordered_multimap;
STL容器适配器有:stack(后进先出的 栈)、queue(先进先出的 队列)、priority_queue(优先队列)、flat_set、flat_multiset、flat_map、flat_multimap
STL容器视图有:span、 mdspan