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

第2关:还原键盘输入(list)

题目:

 

知识点: 

列表list相较于数组:

        优势:可在任意指定位置插入或者删除元素而不影响列表其他地方 。

        劣势:无法直接进行下标索引,需要迭代器it逐个遍历。

代码:

#include <iostream>
#include <string>
#include <list>
using namespace std;int main()
{/********* Begin *********///读取输入,解析并输出复原后的输出string s;list<char>l;list<char>::iterator it=l.begin();while(cin>>s){int i=0;while(i<s.size()+1){if(s[i]=='\0'){it=l.begin();while(it!=l.end()){cout<<*it;it++;}cout<<endl;l.clear();it=l.begin();}if(s[i]>='A'&&s[i]<='Z'||s[i]>='a'&&s[i]<='z'||s[i]>='0'&&s[i]<='9')l.insert(it,s[i]);//**!为何迭代器it不用it++,不然不就一直指向l.begin()了吗?!**//else if(s[i]=='>')it++;else if(s[i]=='<')it--;else if(s[i]=='[')it=l.begin();else if(s[i]==']')it=l.end();i++;}}/********* End *********/
}

问题: 

 为何迭代器it不用it++,不然不就一直指向l.begin()了吗?

 

在这段代码中,`it` 是一个插入迭代器,用于将元素插入到列表 `l` 中。当调用 `l.insert(it, s[i])` 时,`it` 不需要手动增加,因为 `insert` 方法会在 `it` 指向的位置插入元素,并且会自动更新 `it`,使其指向新插入的元素。

因此,在这个情况下,不需要手动增加 `it`,因为 `insert` 方法会自动更新迭代器的位置。

 

http://www.lryc.cn/news/227912.html

相关文章:

  • 数据结构 | 栈的实现
  • python异常、模块与包
  • 虚拟内存和物理内存
  • FCA例题
  • mysql使用GROUP BY归组后把所有记录id汇总到一个字段中
  • Vue3 使用Element Plus表格单选带checkbox
  • IOC - 自定义IOC容器
  • 力扣第647题 回文子串 c++ 动态规划 双指针 附Java代码 注释解释版
  • 【Go入门】struct类型
  • 怎么改变容易紧张的性格?
  • 合作共赢 共克时艰
  • VCSA7许可证过期问题
  • 解决win11更新后,文件夹打不开的bug
  • 修复了数个Bug!
  • 设计模式之--原型模式(深浅拷贝)
  • Linux服务器从零开始训练 RT-DETR 改进项目 (Ultralytics) 教程,改进RTDETR算法(包括使用训练、验证、推理教程)
  • 矩阵理论--矩阵分解
  • go语言相关bug
  • Spring Cloud OpenFeign:基于Ribbon和Hystrix的声明式服务调用
  • 租用服务器带宽类型应用
  • SOLIDWORKS实用技巧之焊件轮廓应用
  • 本地浏览器全局翻译 demo 以火狐firefox为例【免费-简单】
  • 使用多线程处理List数据
  • Elasticsearch--Python使用、Django/Flask集成
  • pyspark将数据多次插入表的时候报错
  • Qt绘制饼状图
  • Vue3 setup函数
  • Django(三、数据的增删改查、Django生命周期流程图)
  • Linux 部署Sentinel控制台
  • 服务器如何下载百度网盘数据