STL库——List常见使用接口

该博客主要介绍了C++中list容器,它是可在常数范围内任意位置插入和删除的序列式容器,底层为双向链表结构。还对比了与forward_list、其他序列式容器的差异,同时列举了list常见接口,如构造函数、迭代器等,并对接口功能做了简单概括。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、介绍

1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。

2. list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向 其前一个元素和后一个元素。

3. list与forward_list非常相似:最主要的不同在于forward_list是单链表,只能朝前迭代,以让其更简单高效。

4. 与其他的序列式容器相比(array,vector,deque),list通常在任意位置进行插入、移除元素的执行效率 更好。

5. 与其他序列式容器相比,list和forward_list最大的缺陷是不支持任意位置的随机访问。

二、常见接口

1.构造函数

构造函数接口说明
list(size_type n, const value_type& val = value_type())构造的list中包含n个值为val的元素
list()构造空的list
list(const list& x)拷贝构造
list(InputIterator first,InputIterator last)用(first,last)区间中的元素构造list

2.迭代器iterator

函数声明接口说明
begin+end返回第一个元素的迭代器+返回最后一个元素下一个位置的迭代器
rbegin+rend返回第一个元素的reverse_iterator,即end位置,返回最后一个元素下一个位置的reverse_iterator,即begin位置

迭代器类型

单向迭代器:只允许++

双向迭代器:允许++和--

随机迭代器:允许++、--、以及+、-

3.容量

函数说明接口说明
empty检查list是否为空
size返回list当前有效节点个数

4.元素访问

函数声明接口说明
front返回第一个节点中值的引用
back返回最后一个节点中值的引用

5.空间管理

函数声明接口说明
push_front在list首元素前插入值为val的元素
pop_front删除list中第一个元素
push_back尾插一个元素
pop_back尾删一个元素
insert

在指定位置pos插入一个元素

erase删除list position位置的元素
swap交换两个list中的元素
clear清空list中的有效元素

总结

本章整理了list的基本接口,对接口功能进行了简单的概括。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值