我想使用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
答案 0 :(得分:5)
我真的认为你最好不要使用现有的矩阵库来采取这种方法 - 有很多可供选择的,谷歌用于“C ++矩阵库”。如果你必须自己动手,你绝对应该实现自己的Matrix类,而不是搞乱裸矢量。
答案 1 :(得分:4)
我认为你必须做这样的事情。
sollist.push_back(vector<vector<int>>());
sollist[0].push_back(vector<int>());
sollist[0][0].push_back(value);