【发布时间】:2015-02-08 17:16:57
【问题描述】:
我想以相反的方向遍历向量的值。如您所知,向量的大小为 size_t。当我使用以下代码时:
for(size_t r=m.size()-1; r >= 0; r--)
{
x[r] = f[r];
for(size_t c = r+1; c < m.size(); c++)
{
x[r] -= m[r][c] * x[c];
}
}
我将超出向量的范围,因为 r 在递减 r = 0 后将变为 4294967295。
我没有更改 r 的类型,因为在我的项目中,我将警告视为错误,所以它应该是 size_t 或者我应该强制转换它,这并不有趣。
【问题讨论】:
-
r >= 0 && r < m.size() -
使用反向迭代器怎么样?
-
我同意猫,看起来你可以使用 rbegin()/rend()。
-
@ShmilTheCat 除了他正在索引到
x、r和m。 -
是的!反向迭代器很有趣,但在我的整个代码中,我使用的是这种类型的迭代器,在这里只使用一次并不有趣。