在c ++中向三维向量添加值

时间:2009-08-17 08:27:56

标签: c++ vector

我想使用3-d Vector在c ++中的某些计算之间存储和添加值。 我在向量中添加第三维时遇到问题。 我想要实现的是一个向量,每次迭代放入一个二维向量,这里只有每个向量的第一个值... 所以输入看起来像这样

1 3 7 9
- - - -

然后我想在标有 - 的地方添加值 - 所以最后矩阵看起来像这样(每次迭代)(只显示2-d)

1 3 7 9
2 5   7
3     2
1

现在我无法添加第一个元素。我正在使用sollist 3-D矢量作为全局矢量。 我的值数组都具有相同数量的元素> 0.5这样就不是错误所在。

 vector<vector<vector<int>>>sollist;


void sol(array& values, int& iter)
    {int i;
    sollist.push_back ( vector<vector<int>>() );

        for (i=0;i<10;i++)
    if (values[i]>0.5)
    sollist[iter][0].push_back(i);
    }

非常感谢您的帮助和优秀的论坛...... / Buxley

2 个答案:

答案 0 :(得分:5)

我真的认为你最好不要使用现有的矩阵库来采取这种方法 - 有很多可供选择的,谷歌用于“C ++矩阵库”。如果你必须自己动手,你绝对应该实现自己的Matrix类,而不是搞乱裸矢量。

答案 1 :(得分:4)

我认为你必须做这样的事情。

sollist.push_back(vector<vector<int>>());
sollist[0].push_back(vector<int>());
sollist[0][0].push_back(value);