list容器的底层结构(详述insert()与erase())

本文介绍了带头结点的双向循环链表list,重点讨论了在list容器中高效插入(insert)和删除(erase)元素的接口。这些操作允许在序列的任意位置进行,并特别优化了中间元素的操作。插入时,新元素使用容器的分配器分配内存,可能因内存不足引发bad_alloc异常。删除操作则会减少容器尺寸,不影响其他元素的效率。

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

目录

一、带头结点的双向循环链表(list)

二、贯穿list容器的insert与erase接口​编辑


一、带头结点的双向循环链表(list)

二、贯穿list容器的insert与erase接口

通过在指定位置的元素之前插入新元素来扩展容器。
这有效地增加了插入的元素数量的列表大小。
与其他标准序列容器不同,list和forward_list对象专门设计用于在任何位置高效插入和删除元素,即使是在序列的中间。
参数决定了插入的元素数量以及初始化的值:

指向新插入的第一个元素的迭代器。
成员类型迭代器是指向元素的双向迭代器类型。
新元素的存储使用容器的分配器分配,这可能会在失败时引发异常(对于默认分配器,如果分配请求不成功,则会引发bad_alloc)。

图解

 

从列表容器中删除单个元素(位置)或一系列元素([first,last))。
这有效地减少了容器的尺寸,减少了被破坏的元件的数量。
与其他标准序列容器不同,list和forward_list对象专门设计用于在任何位置高效插入和删除元素,即使是在序列的中间。

一个迭代器,指向函数调用删除的最后一个元素之后的元素。如果操作删除了序列中的最后一个元素,则这是容器结束。
成员类型迭代器是指向元素的双向迭代器类型。

 图解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值