list(双向链表)
1.特征:
(1)非连续内存,每个节点含前驱 / 后继指针;
(2)任意位置插入 / 删除 O (1)(只需修改指针);
2.适用场景:
频繁在任意位置插入 / 删除(如链表结构的业务、频繁修改的列表)
3.常用操作:
#include <list>
list<int> l = {1,2,3};
auto it = l.begin();
advance(it, 1); // 移动迭代器到第2个元素(无[]访问)
l.insert(it, 5); // 插入到it前
l.erase(it); // 删除it指向的元素
l.splice(l.begin(), l, it); // 拼接(链表特有,高效移动元素)
(1)非连续内存,每个节点含前驱 / 后继指针;
(2)任意位置插入 / 删除 O (1)(只需修改指针);
2.适用场景:
频繁在任意位置插入 / 删除(如链表结构的业务、频繁修改的列表)
3.常用操作:
#include <list>
list<int> l = {1,2,3};
auto it = l.begin();
advance(it, 1); // 移动迭代器到第2个元素(无[]访问)
l.insert(it, 5); // 插入到it前
l.erase(it); // 删除it指向的元素
l.splice(l.begin(), l, it); // 拼接(链表特有,高效移动元素)
全部评论
相关推荐
halux:主人
查看10道真题和解析 点赞 评论 收藏
分享