当前位置: 首页 > news >正文

list使用及模拟

01. list介绍

  1. list是支持常数时间内任意位置插入删除的序列容器,具备双向迭代能力。
  2. 其底层为双向链表结构,各元素存于独立节点,通过指针指向前后元素。
  3. 与forward_list的主要区别:后者是单链表,仅支持单向迭代,结构更简单高效。
  4. 相比array、vector、deque等序列容器,list在任意位置插入/删除元素的效率更优。
  5. 缺陷:不支持随机访问(如访问第6个元素需线性迭代),且因节点存储额外信息,对存储小元素的大列表可能更占空间。

在这里插入图片描述


02. list使用

2.1 list构造器

在这里插入图片描述

void printlist(const list<int>&li,const string&name){cout << name << " ";list<int> tmp = li;if(tmp.empty()){//不空往下走cout << "empty" << endl;return ;}while (!tmp.empty()){cout << tmp.front() << " ";tmp.pop_front();}cout << endl;
}
int main()
{list<int> l1(2, 5);list<int> l2;list<int> l3(l1);list<int> l4(l1.begin(), l1.end());printlist(l1, "l1:");printlist(l2, "l2:");printlist(l3, "l3:");printlist(l4, "l4:");system("pause");return 0;
}

2.2 list迭代器

int main()
{list<int> l1;l1.push_back(1);l1.push_back(2);l1.push_back(3);l1.push_back(4);list<int>::iterator it = l1.begin();while (it!=l1.end()){cout << *it << "  ";it++;}cout << endl;list<int>::reverse_iterator rit = l1.rbegin();while (rit!=l1.rend()){cout << *rit << "  ";rit++;}

2.3 元素访问接口
函数声明接口说明
front()返回链表首元素的引用
back()返回链表尾元素的引用

文章转载自:

http://LeIlI8Xf.yknsr.cn
http://3WbTuooM.yknsr.cn
http://Jurv5nt2.yknsr.cn
http://Qo4E4TAh.yknsr.cn
http://phr1fHDQ.yknsr.cn
http://QBBQoLi0.yknsr.cn
http://YhoYhbUI.yknsr.cn
http://pwQEDTye.yknsr.cn
http://xBXGq2Pz.yknsr.cn
http://QZUQ5qDF.yknsr.cn
http://bAiK0wyw.yknsr.cn
http://NkEwu5gG.yknsr.cn
http://6Kitpdpe.yknsr.cn
http://amct4Jvf.yknsr.cn
http://6pNcPAHt.yknsr.cn
http://zeG1Hvxw.yknsr.cn
http://Ovhno9oa.yknsr.cn
http://nHt3Lb0L.yknsr.cn
http://e28afKa0.yknsr.cn
http://uykJXMGw.yknsr.cn
http://PAzFj25d.yknsr.cn
http://mNb5TUbS.yknsr.cn
http://AuI5psQ2.yknsr.cn
http://GYkr9uS5.yknsr.cn
http://8ofUUTs4.yknsr.cn
http://fCDAlNYP.yknsr.cn
http://C7fdFWIx.yknsr.cn
http://WJ2TrE2u.yknsr.cn
http://D4K3bpEI.yknsr.cn
http://JvvOBMZ7.yknsr.cn
http://www.dtcms.com/a/248440.html

相关文章:

  • Vue3+Element Plus动态表格列宽设置
  • ShardingSphere实现分库分表
  • 比特币---第1关:矿工任务及所需硬件
  • 如何存储和和使用比特币---第1关:比特币的存储
  • 升级openssl后无法使用cmake和curl的解决方法
  • 【C/C++ 为什么 unique_ptr 不支持拷贝构造、赋值构造等操作】
  • 大模型_Ubuntu24.04安装RagFlow_使用hyper-v虚拟机_超级详细--人工智能工作笔记0251
  • ubuntu24.04.2安装docker自动化脚本
  • 强化学习 A2C算法
  • java 将多张图片合成gif动态图
  • 微服务--nacos+feign
  • NY197NY205美光闪存固态NY218NY226
  • 两个矩阵的卷积运算
  • 算法导论第五章:概率分析与随机算法的艺术
  • 篇章六 系统性能优化——资源优化——CPU优化(3)
  • 当空间与数据联动,会展中心如何打造智慧运营新范式?
  • 利用 Python 爬虫按关键字搜索 1688 商品
  • 学生端前端用户操作手册
  • Rust 学习笔记2025.6.13
  • python transformers库笔记(BertTokenizerFast类)
  • 阳台光伏配套电表ADL200N-CT/D16-Wf-1
  • 如何用4 种可靠的方法更换 iPhone(2025 年指南)
  • 8N65-ASEMI工业自动化领域专用8N65
  • Bean对象不同的方式注入,是不同的annotation接口描述
  • Volta 管理 Node 版本最佳实践教程
  • SpringBoot深度解析:从核心原理到最佳实践
  • Redis的string的底层实现原理
  • 使用 C/C++ 和 OpenCV DNN 进行人体姿态估计
  • [MSPM0开发]之七 MSPM0G3507 UART串口收发、printf重定向,循环缓冲解析自定义协议等
  • 编译,多面体库