list基本使用

list基本使用

list容器底层是带头双向链表结构,可以在常数范围内在任意位置进行输入和删除,但不支持任意位置的随机访问(如不支持[ ]下标访问),下面介绍list容器的基本使用接口。

template < class T, class Alloc = allocator > class list;

构造

1.无参构造

list()

2.使用n个元素val进行构造

list(size_type n,const value_type& value = value_type());

3,拷贝构造

list(const list& x);

4.使用迭代器区间进行构造

list(InputIterator first, InputIterator last);

迭代器

1.正向迭代器

iterator begin();

const_iterator begin() const;

terator end();

const_iterator end() const;

2.反向迭代器

reverse_iterator rbegin();

const_reverse_iterator rbegin() const;

reverse_iterator rend();

const_reverse_iterator rend() const;

容量

1.判断链表是否为空

bool empty() const;

2.获取链表中有效节点个数

size_type size() const;

3.修改容量大小

void resize (size_type n, value_type val = value_type());

访问

1.获取链表第一个节点的值的引用

reference front();

const_reference front() const;

2.获取链表最后一个节点的值的引用

reference back();

const_reference back() const;

修改

1.元素首插

void push_front (const value_type& val);

2.元素尾插

void push_back (const value_type& val);

3.在position位置插入值为val的元素

iterator insert (iterator position, const value_type& val);

void insert (iterator position, size_type n, const value_type& val);

template

void insert (iterator position, InputIterator first, InputIterator last);

//

//Notice that the range includes all the elements between first and last, including the element pointed by first but not the one pointed by last.

5.元素首删

void pop_front();

6.元素尾删

void pop_back();

7.删除position位置的元素

iterator erase (iterator position);

iterator erase (iterator first, iterator last);

//

//the range includes all the elements between first and last, including the element pointed by first but not the one pointed by last.

8.清空链表有效元素

void clear();

9.交换两个链表的所有元素

void swap (list& x);

需要注意的是,list在进行插入操作时,不需要移动数据,因此进行元素插入不会导致迭代器失效,但在进行元素删除时,指向删除元素的迭代器会失效,其他的并没有影响。

相关推荐
广都--编程每日问5 分钟前
c++右键菜单统一转化文件为utf8编码
c++·windows·python
伐尘9 分钟前
【MySQL】windows系统下mysql慢日志查询
windows·mysql·adb
不穿格子的程序员11 分钟前
从零开始写算法——普通数组类题:数组操作中的“翻转技巧”与“前后缀分解”
数据结构·算法
curry____30314 分钟前
study in PTA(高精度算法与预处理)(2025.12.3)
数据结构·c++·算法·高精度算法
私人珍藏库15 分钟前
[Windows] 隐写者 SteganographierGUI 1.3.8
windows·pc·工具·软件
代码游侠26 分钟前
学习笔记——栈
开发语言·数据结构·笔记·学习·算法
weixin_3870021533 分钟前
二次开发的openssl在windows平台的编译
linux·windows·安全·ssl
Ayanami_Reii37 分钟前
进阶数据结构应用-维护序列
数据结构·算法·线段树
CoderYanger1 小时前
C.滑动窗口-越长越合法/求最短/最小——2904. 最短且字典序最小的美丽子字符串
java·开发语言·数据结构·算法·leetcode·1024程序员节
eguid_11 小时前
【软件分享】简单的Windows无线电视投屏软件simpleTVCast,支持桌面镜像投屏和视频投屏
windows·电视投屏·音视频投屏·镜像投屏·桌面镜像投屏