问题标签 [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++ - std::transform 与 std::istream_iterator
假设我有一个包含由空格分隔的数字的字符串。我想将数字插入整数向量中,其中每个数字减一。例如:
现在计划是std::transform
与 a 结合使用std::istream_iterator<int>
,如下所示:
不幸的是,这不起作用,因为std::transform
期望target
已经是正确的大小。所以我必须做
现在我有两个问题。如何target
事先动态找到合适的尺寸?有没有更优雅的方式来实现实际目标?
c++ - C++ istreambuf_iterator 模板参数
基于这个问题:C++ 流混淆:istreambuf_iterator vs istream_iterator?on istreambuf_iterator
,我的理解是这istreambuf_iterator
是原始输入而不是格式化输入的迭代器。在那种情况下,假设 的模板参数istreambuf_iterator
只能是与 相关的参数是否正确char
,例如istreambuf_iterator<char>
, istreambuf_iterator<wchar_t>
,并且类似的东西istreambuf_iterator<int>
是无效的?
c++ - c ++ fstream obj在istream_iterator中使用后回滚
如何重置迭代器状态或fstream
在istream_iterator
其他istream_iterator
. 我在 obj 上尝试了seekp(ios_base::begin)
和clear()
方法,fstream
但这没有任何影响。
更新:
如果我使用
然后继续使用相同的istream_iterator
第一个和第二个取消引用给出相同的值,所以需要使用
跳过重复项。
c++ - std::istream_iterator 不适用于 std::pair
简单的例子。此代码无法编译:
编译日志包含一堆替换错误并以
但是,如果我将 test_t 更改为这样的结构:
它编译得很好。或者,如果我保留 std::pair,但直接从 std::cin 调用 operator>>,它也可以正常工作:
有谁知道为什么会这样?或者它只是编译器中的一个错误或什么?
顺便说一句,编译器是 g++ (GCC) 8.2.1
c++ - 多流迭代器 C++
我的程序的目的是打开一个长度相同的m行的文本文件n,逐列读取文件并打印每一列。
例如,对于这个文本文件
我想打印
由于一行长度可以是 200 000 000,而列长度可以超过 10 000,所以我无法在矩阵中打开内存中的所有文件。
从理论上讲,我想要一个在空间上使用 O(m) 并在时间上使用 O(m*n) 的程序。
一开始,我不得不考虑这些解决方案:
- 如果我看到每一列的所有文件,复杂度是 O(m*n²),
- 如果我使用 seekg 和一个位置数组并从一个位置跳到另一个位置,复杂度是 O(m n log(n))。
最后一点,对于一些服务器问题,我只需要使用 STL。
我的最后一个想法是创建一个文件的迭代器数组,并在每行的开头初始化这些迭代器。之后,要查看下一列,我只需要增加每个迭代器。这是我的代码
可悲的是,它不起作用,我有这个东西作为输出
我认为问题在于迭代器数组iarray并不独立于istart,我该怎么做?
c++ - 使用自己的 istream_iterator 封装数据访问
我目前有基本上包含这些命令的代码:
ifs
是一些std::ifstream
。该代码有效。
我现在想对从另一个来源解压缩的数据使用相同的数据。基本上,我会读取我在某处缓冲的块,然后使用一个有点像fgetc
. 这一切都有效,但将非 STL 与 STL 代码混合在一起。
我想做的是封装解压并提供一个迭代器,以便调用std::getline
工作。我想那将是一个istream_iterator
?这个类需要包含的最小值是多少?
更新:根据我得到的评论,以及http://www.voidcn.com/article/p-vjnlygmc-gy.html上的 streambuf 实现,我现在有了以下代码。作为测试用例,我使用了 zlib 压缩。代码不是很好,我很感激任何改进它的提示。
它可以按如下方式使用:
我曾尝试使用instd::unique_ptr
中的gzip_streambuf
成员gzip_istream
,但由于缺少复制构造函数,所有尝试都失败了。我想摆脱新的/删除的东西,但不知道如何。
c++ - 我想在使用 istream 运算符读取输入后使用 cin
我使用 istream_iterator 从输入中读取整数(直到 eof)并将它们存储到向量中
之后我想读取一个整数(或者可能是另一种类型的值,例如字符串)。我怎样才能做到这一点?
- 我应该使用 cin (也许以某种方式“清除”它)?我应该使用已经创建的 istream_iterator 吗?
“有问题的”代码如下。它不使用 cin 读取值。
c++ - 从 istream_iterator 理解相等
有人可以解释为什么这个 istream_iterator 代码。
工作,不只是写成
我不明白包含!_M_ok 的原因。提前致谢。
c++ - 如何使 std::istream_iterator 只读到行尾?
具有以下代码:
我想让它只读取输入流直到行尾。我该怎么做std::istream_iterator
?
c++ - 如何使用 istream_iterator 从 ifstream 中读取带空格的字符串?
我想使用 逐行读取文本文件,istream_iterator
但是当行中有空格时它会失败。
这是一个示例代码:
例如,在这个输入文件中:
1;3.14;bla bla
-3;0.923;let me go
读取的第一个字符串是1;3.14;bla
有没有办法做到这一点,还是我应该放弃并使用getline
?