定义2D矢量的最佳方法是什么?哪些行是已知的?所以基本上,我会有这样的事情:
2 3 4
7 5 4 12 4
2 1 0 2
我会知道有多少行(实际上我只会在得到行变量后知道它),但每行的列会有所不同。那么最好的方法是什么? (如果可能的话,我打算在需要的时候推回每一行的列)
答案 0 :(得分:1)
以下是有类似问题http://www.cplusplus.com/forum/beginner/12409/的人。只需定义矢量矢量。
它不会让我在下面发表评论,但在你的代码中你有tiesiogiaiJungiasi[A.at(i)]
A是什么类型,如果它是一个向量,那么就是那个用整数填充的向量,如果不是A.at(i)就是你的问题。这将为您提供位于该位置的元素而不是位置本身。
如果您尝试将元素索引i从行B推送到行A的元素索引i,请尝试这样的操作。
tiesiogiaiJungiasi[A].push_back(tiesiogiaiJungiasi[B][i]);
假设索引位置的行B中有一个元素。
另一个问题可能是你说你的行可能有不同的大小。那么你应该在for循环中查看你的m参数。如果该数字大于该行中的列数(元素),则可以离开数组。
答案 1 :(得分:0)
如果我理解正确,这看起来像你想要的是一组矢量。您可以设置vector<string> myArray[3];
之类的向量数组,然后将值推送到myArray[0]
,myArray[1]
等。
答案 2 :(得分:0)
如果我理解正确的话。您需要一个允许附加到每行末尾的数据结构。 vector< vector < int > >
即可。
vector< vector < int > > rows;
如果您知道可写的最大行数,则必须填充此内容:
vector< vector < int > > rows(MAX);
使用rows[i].push_back(...);
追加到行尾。行从0开始编号(如果你想从1开始,则将MAX加1)。