C++STL中链表list的底层实现和常用操作

STL其他内容解析:关于C++中STL的理解和应用


目录

List概述

List的节点

List的迭代器

List的常用函数


List概述

List和Vector都是STL的顺序容器,唯一不同的地方就在于:Vector是一段连续的内存空间,List则是一段不连续的内存空间,相比于Vector来说,List在每次插入和删除的时候,只需要配置或释放一个元素空间,对于任何位置的插入和删除操作,List永远能做到常数时间。但是,List由于不连续的内存空间,导致不支持随机寻址,所以尺有所长寸有所短,在程序中选择使用那种容器还要视元素的构造复杂度和存取行为而定。

List的节点

List的节点结构如下:

template < class T>
struct __list_node{
    typedef void* void_pointer;
    void_pointer next; //型别为void*,也可以设为__list_node<T>*
    void_pointer prev;
    T data;
};

从节点结构可以看出,List就是一个双向链表,其结构如下图所示:

List的迭代器

在Vector中,由于是连续的存储空间,支持随机存取,所以其迭

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值