问题标签 [istream-iterator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
340 浏览

c++ - 如何使用 istream_iterators 拆分方程?

我正在尝试将字符串拆分( 1 + 2 )为向量,并且在使用时istream_iterators<string>它不会拆分括号,因此我得到向量输出,例如

(1 , + , 2)当我想要( , 1, + , 2 ,)

是否可以使用istream_iterators 来实现这一点?

0 投票
2 回答
110 浏览

c++ - 0x9-0xD 上的 istream_iterator 行为

我写了一个小测试文件来说明问题:

现在,预期的输出将是

但是,我得到 0x9-0xD 的以下输出:

谁能解释我为什么得到这个结果?

0 投票
2 回答
1773 浏览

c++ - c ++如何读取文件并拆分它的行

我正在尝试读取文件并拆分每一行(因此,代替“我每天遛狗”这一行,我将使用“我”、“步行”、“我的”、“狗”、“每个”、“天”)。我试图从这里跟随这个例子。

这是我的代码:

现在我的代码无法编译,可能是因为istringstream,我得到了这个错误:

0 投票
1 回答
160 浏览

c++ - istream_iterator 是否重用对象?

我正在编写一个 C++ 库来解析 WARC 文件,它包含用于存储 WARC 记录和字段数据的类以及用于从某些输入流中读取数据的运算符。它operator>>可以从 a 中读取istream并填充WARCRecord对象。我能够从istream流中读取并将其解析为WARCRecord对象。但是,我想使用 aistream_iterator从输入流中读取所有 WARC 记录。

当我使用istream_iterator迭代直到流结束时,我operator>>收到了上次调用的相同(复制?)对象。这是预期的行为还是我的类定义中缺少一些运算符/构造函数?

这是用于检查此行为的单元测试的存储库链接:https ://github.com/jvanz/libwarc

一个简单的例子来演示上面的文本:

这个程序的输出是:

注意对象fields成员大小的累积MyClass

0 投票
0 回答
26 浏览

c++ - 在 C++ 中使用 istream_iterator 将 csv 文件读入向量

我正在尝试编写一个简单的函数来读取 csv 并将每一行存储到一个向量中。代码如下:

但是由于某种原因,文件的行似乎由空格和换行符分隔。例如,原始数据文件的第一行如下所示:

但是在main中调用函数之后:

并输出向量 mydata 的元素,我得到:

即使我期待:

我试过用

但这没有用。结果是一个空的向量。

我知道我可以使用 getline 和循环,但我想了解为什么我当前的代码不起作用。

任何帮助,将不胜感激。谢谢

0 投票
1 回答
110 浏览

c++ - 取消引用的 InputIterator 的地址?istream_iterator 的案例

我有一个遗留代码,其中接口是为指针定义的。我正在尝试调整一些函数来获取迭代器,例如前向迭代器。

是否允许获取 InputIterator 取消引用的元素的地址,例如istream_iterator

结果是暂时的,并且在通话期间必须在内存中的某个地方,但我不确定。

以下示例使用double,但类型可以更复杂(大)。

0 投票
0 回答
66 浏览

c++ - 如果可能,优化 InputIterator 取消引用而不制作副本?

我有一个遗留代码,其中接口仅为指针定义,我正在尝试调整一些函数以采用迭代器。

在这个问题的答案中Address of a dereferenced InputIterator? 注意到istream_iterator 的情况std::istream_iteratorsInputIterator. 但是它们在InputIterators 中是特殊的,因为它们的取消引用保证生成语言引用T const&

通用输入迭代器的代码如下所示,请注意,我必须生成值类型的副本才能获取地址。

然而,std::istream_iterator这不是最佳的,因为会制作不必要的副本。(我不知道它是否可以优化,但这是另一个问题。)所以我可以添加一个重载来处理istream_iterator.

或更详细

问题是,我可以只使用以下版本f 而不编写重载istream_iterator吗?

我认为这应该是由于https://herbsutter.com/2008/01/01/gotw-88-a-candidate-for-the-most-important-const/,但我不确定它是否适用。

甚至这一个班轮:

注意:在实际代码中,所有函数都是模板化的,double这里只是一个占位符。

0 投票
1 回答
215 浏览

c++ - 如何从 range-v3 的 istream_range 检索文件大小?

我正在尝试从 range-v3 获取文件大小值,就像这样。

但是,距离函数似乎返回了错误的大小。为什么?

godbolt.org/g/DsouJE

0 投票
2 回答
361 浏览

c++ - istream_iterator 复制示例一直在等待输入

我尝试从“C++ 标准库”的第 107 页实现流迭代器的示例。我被困在这条线上:

程序在这里一直从控制台读取数据,但不会传递到下一行。我如何继续超越这一点?

0 投票
6 回答
154 浏览

c++ - 无法理解此 C++ 程序返回值

我在 Stroustrup 的 TCPPPL 中遇到了以下程序:

我的问题是最后一行是什么,即return !is.eof() ||!os;在做什么。我知道如果 main 返回非零值,那么这意味着一个错误,但这里返回的是什么?