正在阅读此解决方案:

https://stackoverflow.com/a/42654357/8408220

(关于“如何读取整数直到行尾?”的问题)

我不明白这条线在做什么:

istringstream is( line );

我知道 istringstream 是一个类,但是"is"部分是什么?

是不是这样做:
istringstream is = new istringstream(line);

?

最佳答案

istringstream is( line );

是一个自动分配的名为 istringstreamis 的定义,用 line 的内容初始化。
istringstream is = new istringstream(line);

不会编译。 new 动态分配和构造一个新对象并返回指向它的指针。您只能将指针分配给指针。你可以
istringstream * is = new istringstream(line);

并使 is 成为指向 istringstream 的指针,但现在您必须处理管理动态分配。确保你
delete is;

当你不再需要它时。

也就是说,在使用动态路由之前,更喜欢自动分配并读取 Why should C++ programmers minimize use of 'new'?

关于c++ - 这一行发生了什么 : istringstream is( line );,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54730487/

10-13 05:31