c++ - 从字符串中提取字符时,基于范围的循环和字符串流有什么区别
问题描述
考虑像 string s = "xyz123" 这样的字符串。
for(char ch : s)
cout<<ch;
和字符串流一样
char ch;
stringstream ss(s);
while(ss>>ch)
cout<<ch;
他们都给出了相同的解决方案。是否存在两者行为不同的情况?什么时候应该使用每个。
解决方案
第二个将跳过字符串中的任何空格。就是这样>>
工作的。
除非跳过空格实际上是一个要求,否则第二个版本也是不必要的。当字符串中内置了用于迭代的方法时,为什么要构造一个新对象只是为了遍历一个字符串。
推荐阅读
- c++ - 如果我们只是传递变量,为什么通过指针函数起作用请指导
- matlab - 使用 matlab 的 spmd 计算简单的三重积分给了我不正确的解决方案,对我做错了什么有什么想法吗?
- javascript - 如何在ant design Form的Form.Item中迭代添加Form.Item
- python - Python sql 查询占用的内存是表大小的 3 倍?
- php - 任何检查base64代码有什么问题的方法
- r - 时间跨度的 R 计算
- javascript - 测试 vuejs prop 默认值,即开玩笑的匿名函数
- python - Colobars 乘以每个循环
- python - 如何让机器人自动发送消息?
- r - 在 x 轴下方创建包含月度数据的折线图