istream_iterator之间的距离
Distance between istream_iterators
我试图通过使用std::distance
提前为向量的构造函数参数来计算std::cin
读取的元素数量,如下所示:
// Gives correct amount, but now can't use to put into vector
int size = std::distance(std::istream_iterator<std::string>(std::cin),
std::istream_iterator<std::string>());
std::vector v(size);
// Already read from stream
std::copy(...);
显然,我可以用std::copy
一步完成这一点,但这需要事先设置大小。我的问题不是关于向量,而是关于在不影响流的情况下使用std::istream_iterator
获得任意输入的大小。什么好主意吗?
std::istream_iterator
是InputIterator
,这意味着它只支持在迭代的范围内进行一次传递。没有办法计算出大小,然后返回开始读取数据。
您可以使用std::copy
从std::cin
(或任何其他输入流)读取,而无需事先知道大小,只需使用std::back_inserter
将正在读取的数据附加到vector
。
std::vector v;
std::copy( std::istream_iterator<std::string>(std::cin),
std::istream_iterator<std::string>(),
std::back_inserter(v) );
相关文章:
- 用C++程序计算圆锥体的体积、球体的体积、八边形的面积和两点之间的距离
- 计算所有对之间的曼哈顿距离
- 如何使用发送数据包所花费的时间计算两个节点之间的距离?
- 两个有符号数字之间的距离
- 计算车辆之间的距离并设置速度,使距离保持不变,例如 5 米
- 计算两个迭代器之间的距离时"Vector Iterators Incompatible"
- 查找彼此之间具有不同最小距离的随机数
- 相同字符之间的最小距离
- 如何排列二进制字符串以最小化它们之间的距离
- 堆和堆栈之间的距离
- 树节点之间的最大距离中的运行时错误
- 最接近的字符串:在字符串阵列中找到2个字符串之间的最小距离
- 尝试查找数组中点之间的最小距离时的随机垃圾输出
- c++ 从大型数组中读取 3D 坐标并计算它们之间的距离
- 在 OpenCV 中计算 SURF 功能之间的距离
- 计算机如何分配两个变量,我们如何计算两个变量之间的距离?
- 是否有C 功能来计算两个索引之间的距离
- C++:快速/并行计算两个"std::vector<double>"向量之间的L1距离
- 2 点分配之间的 C++ 距离
- 使用指针计算三角形各点之间的距离