所以我有一个线性向量,我用来通过一个类存储 2D 值:现在我想反向打印值......即值(0,0)
占据左下角并(max_x,max_y)
占据右上角......就像典型的笛卡尔网格一样。这是我的代码:
std::string ss="";
int i=0;
for (std::vector<real>::reverse_iterator it= vector.rbegin(); it!=vector.rend();++it)
{
if (lineChanger==max_x)
{
std::cout<<ss<<std::endl;
ss=""; lineChanger=0;
}
ss=std::to_string(*it) +"|"+ ss;
lineChanger++;
}
注意:如果我不直接使用字符串和打印,一切都很好,只是顺序颠倒了。我所有的成员函数都工作
现在在我的主代码中,我用std::fill
我需要的值填充向量(类函数调用)。然后更改一些值,例如 at(0,0)
和(max_x,max_y)
手动。(成员函数)所以说我为 6x6 =36 大小的向量填充了 2.38,然后更改了。现在我将要访问的第一个值(向量中的最后一个,反向迭代器中的第一个)更改为 3. 并运行程序。输出:
2.380000|2.380000|2.380000|2.380000|2.380000|2.380000|
2.380000|2.380000|2.380000|2.380000|2.380000|2.380000|
2.380000|2.380000|2.380000|2.380000|2.380000|2.380000|
2.380000|2.380000|2.380000|2.380000|2.380000|2.380000|
2.380000|2.380000|2.380000|2.380000|2.380000|2.380000|
那是向量的整个大小,我只得到初始的 std::fill 值......有什么问题?我想避免[]
运营商。