【发布时间】:2011-03-16 20:29:15
【问题描述】:
我有一个引用矩阵数据的 std::istream,类似于:
0.0 1.0 2.0
3.0 4.0 5.0
现在,为了评估列数,我想要一些代码,例如:
std::vector<double> vec;
double x;
while( (...something...) && (istream >> x) )
{
vec.push_back(x);
}
//Here vec should contain 0.0, 1.0 and 2.0
在我阅读 2.0 后 ...something... 部分的计算结果为 false,此时 istream 应为 3.0,以便下一个
istream >> x;
应该设置 x 等于 3.0。
您将如何实现这一结果?我猜是while条件
非常感谢您的帮助!
【问题讨论】:
-
澄清一下,我想采用这种方法(如果可行的话)的原因是为了避免创建临时对象(除了双 x)。然后通过 std::swap 创建矩阵 - 将上面的向量与矩阵内部存储(它通过 std::vector 实现)。
-
嗯,你可以用 10 行简单的临时代码来完成,或者你可以不用 50 行的临时代码来完成。使用临时的。