c++ - 这一行发生了什么: istringstream is( line );
问题描述
正在阅读此解决方案:
https://stackoverflow.com/a/42654357/8408220
(对于问题“如何读取整数直到行尾?”)
而且我不明白这条线在做什么:
istringstream is( line );
我知道 istringstream 是一个类,但“是”部分是什么?
是否这样做:
istringstream is = new istringstream(line);
?
解决方案
istringstream is( line );
是一个自动分配istringstream
命名的定义,is
其内容初始化为line
.
istringstream is = new istringstream(line);
不会编译。new
动态分配和构造一个新对象并返回一个指向它的指针。您只能将指针分配给指针。你可以
istringstream * is = new istringstream(line);
并创建is
一个指向 的指针istringstream
,但现在您必须处理管理动态分配。确保你
delete is;
当您不再需要它时。
也就是说,更喜欢自动分配并给出为什么 C++ 程序员应该尽量减少“新”的使用?在走动态路线之前阅读。
推荐阅读
- java - 是否可以在 python 环境中运行的 AWS Lambda 函数中执行 java 代码?
- javascript - 使用 HTML/Javascript 中的下拉菜单显示列表
- github - 如何将我的 git 默认目录更改为 main
- http - 为 URL 的所有子目录提供默认页面
- javascript - IE11 兼容 Object.fromEntries
- python - tensorflow One Hot Encodings 的使用
- python - 接收交易数据以太坊错误TypeError:
- git - 为什么我不能使用 SSH 与 GitHub 交互
- python - 如何在没有 setIndexWidget 的情况下将 Widget 设置为 QAbstractTableModel 数据?
- vue.js - 如何转换日期字段以响应 vuejs 中的字符串,以便我可以根据其他列进行分组