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

STL专题三:list(2,关于list的若干问题)

1 迭代器细节问题大家可暂时将迭代器理解成一个指针该指针指向list中的某个节点。在list中进行插入时是不会导致list的迭代器失效的只有在删除时才会失效并且失效的只是指向被删除节点的迭代器其他迭代器不会受到影响。一个容器通常会提供几种不同“用法”的迭代器。const_iterator常量迭代器只能读不能改元素。vectorint v {1, 2, 3}; vectorint::const_iterator it v.begin(); // *it 10; // 错误不能通过 const_iterator 修改元素 cout *it endl;reverse_iterator:反向迭代器从后往前遍历。vectorint v {1, 2, 3}; for (auto it v.rbegin(); it ! v.rend(); it) { cout *it ; } 3 2 1 虽然是反向遍历但写法仍然是 it。因为“反向迭代器的 ”表示朝前一个元素走下面的性质其实是在说迭代器能支持哪些移动操作。底层结构决定了使用了哪些算法意思是算法对迭代器有要求。而容器能提供什么级别的迭代器取决于它的底层结构。所以容器能不能用某个算法本质上是由底层结构决定的。举个简单例子sort(v.begin(), v.end()); vector可以 listint lst {3, 1, 2}; sort(lst.begin(), lst.end()); // 但对于list是错误的 为什么错因为 std::sort 要求 随机访问迭代器而 list 只有双向迭代器不够强所以不能用。 但是 list 自己有成员函数lst.sort()因为 list 可以用适合链表的方式自己排序。2 list的底层结构为带头结点的双向循环链表
http://www.zskr.cn/news/1344277.html

相关文章:

  • 计算机组成原理笔记(2)
  • 如何实现高效数据解析:百度网盘提取码智能获取技术指南
  • 水机自动化元件BZL-10C轴电流继电器监测装置
  • 字节Seedance、快手可灵、阿里HappyHorse逐鹿AI视频市场,谁能构建“循环生态”?
  • 【数字孪生实战案例】二维鲸孪生该怎样借助数据条件筛选调取飞线相关数据?~山海鲸可视化
  • 交互式振动传感器工作原理
  • GEO优化的时间窗口期:从流量分发到语义占位的技术范式转移
  • 意图共鸣科技《AI记忆链商业化白皮书2.0》发布MCP协议开放倡议:统一“记忆胶囊”规格,让AI记忆可迁移
  • 当多任务处理成为负担:如何用AlwaysOnTop重新掌控你的Windows桌面?
  • C语言:二维数组与字符串
  • 还有人记得这种古老的语言吗?知道的没几个
  • 索尼IMX811如何重塑工业视觉与专业影像的边界
  • 【国家级少数民族语音工程关键进展】:ElevenLabs新疆话语音SDK深度测评——含ASR对齐误差率、情感韵律还原度、宗教文化敏感词过滤机制
  • 联想拯救者工具箱:重新定义你的游戏本控制体验
  • 书匠策AI官网www.shujiangce.com:论文降重降AIGC,原来还能这么玩?
  • OEKO-TEX®2026新规深度解析(6月1日生效)|纺织/皮革行业合规实操指南
  • 3分钟掌握串口数据可视化:SerialPlot让调试变得如此简单![特殊字符]
  • Yalla季报图解:营收7901万美元 净利2840万美元同比降22%
  • 5分钟掌握虚拟显示器:从零开始配置Parsec VDD的完整指南
  • 试制类项目审价深度解析[18号文]
  • OpenAI API参数与错误排查实战指南:temperature、max_tokens、429限流深度解析
  • Unity中获取物体尺寸的三种核心方法与适用场景
  • HTTP安全头配置陷阱与三层验证修复指南
  • 国内7大Web渗透靶场实战指南:从新手破局到CVE复现
  • ViGEmBus:如何在Windows系统中实现专业级游戏控制器虚拟化?
  • Unity中NDK 19.0.5232133的JNI兼容性与ABI稳定性实战指南
  • 电力建设十年数字化,为什么决策层还是“看不见“?
  • Nginx 配置 HSTS 头强制客户端使用 HTTPS 的具体指令是什么
  • 螺丝螺栓垫圈缺陷检测生锈划痕数据集VOC+YOLO格式1291张6类别有增强
  • C# this 关键字解析