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

4 c++ vector

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

1 3 7 9
- - - -
Run Code Online (Sandbox Code Playgroud)

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

1 3 7 9
2 5   7
3     2
1
Run Code Online (Sandbox Code Playgroud)

现在我在添加第一个元素时遇到了麻烦.我正在使用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);
    }
Run Code Online (Sandbox Code Playgroud)

非常感谢你的帮助和一个优秀的论坛.../Buxley

Raz*_*zvi 5

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

sollist.push_back(vector<vector<int>>());
sollist[0].push_back(vector<int>());
sollist[0][0].push_back(value);
Run Code Online (Sandbox Code Playgroud)


小智 5

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