注册 登录
编程论坛 C语言论坛

求助: 数组、链表、vector 三者的区别

追梦人zmrghy 发布于 2022-12-09 06:42, 821 次点击
求助: 数组、链表、vector 三者的区别

看着网上实例代码,一知半解。
自己写程序代码时,数组还勉强会什么,链表、vector就彻底不会用了。。。

不能很好的理解,所以自己写程序就不会用了。。。。
基础太差,如何学会使用求助: 数组、链表、vector。。。。
2 回复
#2
rjsp2022-12-09 09:57
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
#3
追梦人zmrghy2022-12-09 14:52
回复 2楼 rjsp
从概念到理解,从理解到得心应手,不知需要多长时间呀!!!
1