C++ list容器学习总结
----------------------------list
链表是由一系列的结点组成,结点包含两个域,一个数据域,一个指针域
链表内存是非连续的
添加和删除元素 其时间复杂度都为常数项,不需要移动元素,比数组添加删除效率更高
链表不是只有在需要的时候才分配内存
链表需要额外的空间保存节点关系 前驱、后继关系
----------特性总结
采用动态存储分配,不会造成内存浪费和溢出
链表执行插入和删除操作十分方便,修改指针即可,不需要移动大量元素
链表灵活,但是空间和时间额外耗费较大
----------list常用API
list构造函数
list<T> lstT; list采用模板类实现,对象的默认构造形式
list(beg,end); 构造函数将[beg,end)区间中的元素拷贝给本身
list(n,elem); 构造函数将n给elem拷贝给本身
list(const list& lst); 拷贝构造函数
list数据元素插入、删除操作
push_back(elem); 在容器尾部加入一个元素
pop_back(); 删除容器最后一个元素
push_front(elem); 在容器开头插入一个元素
pop_front(); 移除容器中第一个元素
insert(pos,elem); 在pos位置插入elem元素的拷贝,返回新数据的位置
insert(pos,n,elem); 在pos位置插入n个elem元素的拷贝,无返回值
insert(pos,beg,end); 在pos位置插入[beg,end)区间的数据,无返回值
clear(); 移除容器的所有数据
erase(beg,end); 删除[beg,end)区间的数据,返回下一个数据的位置
erase(pos); 删除pos位置的数据,返回下一个数据的位置
remove(elem); 删除容器中所有与elem值匹配的元素
list大小操作
size(); 返回容器中元素的个数
empty(); 判断容器是否为空
reserve(num); 重新制定容器的长度为num,若容器变长的,则以默认值填充新位置
list赋值操作
assign(beg,end); 将[beg,end)区间中的数据拷贝赋值给本身
ssign(n,elem); 将n个elem拷贝赋值给本身
list& operator= (const list& lst); 重载=操作符
swap(lst); 将lst与本身的元素互换
list数据存取
front(); 返回第一个元素
back(); 返回最后一个元素
list反转排列排序
reverse(); 反转链表,比如lst包含1,3,5元素,运行此方法后lst就包含5,3,1元素
sort(); list排序
__EOF__

本文链接:https://www.cnblogs.com/0105XiaoyeZhang/p/17065935.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏