问题标签 [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.
c++ - 如何使用 istream_iterators 拆分方程?
我正在尝试将字符串拆分( 1 + 2 )
为向量,并且在使用时istream_iterators<string>
它不会拆分括号,因此我得到向量输出,例如
(1 , + , 2)
当我想要( , 1, + , 2 ,)
是否可以使用istream_iterator
s 来实现这一点?
c++ - 0x9-0xD 上的 istream_iterator 行为
我写了一个小测试文件来说明问题:
现在,预期的输出将是
但是,我得到 0x9-0xD 的以下输出:
谁能解释我为什么得到这个结果?
c++ - c ++如何读取文件并拆分它的行
我正在尝试读取文件并拆分每一行(因此,代替“我每天遛狗”这一行,我将使用“我”、“步行”、“我的”、“狗”、“每个”、“天”)。我试图从这里跟随这个例子。
这是我的代码:
现在我的代码无法编译,可能是因为istringstream
,我得到了这个错误:
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
c++ - 在 C++ 中使用 istream_iterator 将 csv 文件读入向量
我正在尝试编写一个简单的函数来读取 csv 并将每一行存储到一个向量中。代码如下:
但是由于某种原因,文件的行似乎由空格和换行符分隔。例如,原始数据文件的第一行如下所示:
但是在main中调用函数之后:
并输出向量 mydata 的元素,我得到:
即使我期待:
我试过用
但这没有用。结果是一个空的向量。
我知道我可以使用 getline 和循环,但我想了解为什么我当前的代码不起作用。
任何帮助,将不胜感激。谢谢
c++ - 取消引用的 InputIterator 的地址?istream_iterator 的案例
我有一个遗留代码,其中接口是为指针定义的。我正在尝试调整一些函数来获取迭代器,例如前向迭代器。
是否允许获取 InputIterator 取消引用的元素的地址,例如istream_iterator
?
结果是暂时的,并且在通话期间必须在内存中的某个地方,但我不确定。
以下示例使用double
,但类型可以更复杂(大)。
c++ - 如果可能,优化 InputIterator 取消引用而不制作副本?
我有一个遗留代码,其中接口仅为指针定义,我正在尝试调整一些函数以采用迭代器。
在这个问题的答案中Address of a dereferenced InputIterator?
注意到istream_iterator 的情况std::istream_iterators
是InputIterator
. 但是它们在InputIterator
s 中是特殊的,因为它们的取消引用保证生成语言引用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
这里只是一个占位符。
c++ - istream_iterator 复制示例一直在等待输入
我尝试从“C++ 标准库”的第 107 页实现流迭代器的示例。我被困在这条线上:
程序在这里一直从控制台读取数据,但不会传递到下一行。我如何继续超越这一点?
c++ - 无法理解此 C++ 程序返回值
我在 Stroustrup 的 TCPPPL 中遇到了以下程序:
我的问题是最后一行是什么,即return !is.eof() ||!os;
在做什么。我知道如果 main 返回非零值,那么这意味着一个错误,但这里返回的是什么?