我意识到,如果我想要“valArray”填充到“COLUMN 0,0”的右侧,我应该输入“[j] [1]”,但是,当我这样做时,我一直都会收到错误。 /> OUTPUT:------------------------------------------------ -------------------------------------------------- -------------------------------------------------- 55 0 0 0 0 0 0 0 0 0 0 0 0 -------这是行1 -------------------------- -------------------------------------------------- -------------------- 1 2 3 4 5 6 7 8 9 10 10 10 11 ----这是行2 ----------------------------- -------------------------------------------------- ---------------- 77 0 0 0 0 0 0 0 0 0 0 0 0 -------这就是行3 -------------------------- -------------------------------------------------- -------------------- 88 0 0 0 0 0 0 0 0 0 0 0 0 -------这是行4 -------------------------- -------------------------------------------------- ------------- 请告知如何正确填充,谢谢。
#include <iostream>
#include <vector>
#include <Windows.h>
#include <algorithm>
using namespace std;
int main()
{
int typeArray[4] = {55,66,77,88};
int valArray[13] = {1,2,3,4,5,6,7,8,9,10,10,10,11};
// for vector: 4 = LENGTH or NUMBER of ROWS; 13 = WIDTH or NUMBER of COLUMNS;
// 0 = VALUE all cells are initialized to
vector< vector <int> > myVector(4, vector<int> (13,0));
for (int i = 0; i < 4; i++)
{
myVector[i][0] = typeArray[i];
for (int j = 0; j < 13; j++)
{
myVector[1][J] = valArray[j];
}
}
// print vector to screen with 2 ROWS, 3 COLUMNS
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 13; j++)
{
cout << myVector[i][j] << ' ';
}
cout << '\n';
}
system("Pause");
return 0;
}
答案 0 :(得分:0)
您的代码无效的原因是您没有为myVector分配任何值。
假设typeArray和valArray的长度相同,并且您希望将每个放在一列中,请尝试这样的事情
for (int j = 0; j < sizeof(typeArray)/sizeof(int); j++)
{
myVector[j][0] = typeArray[j];
myVector[j][1] = valArray[j];
}
答案 1 :(得分:0)
一个问题是循环应该是sizeof(typeArray)/sizeof(typeArray[0])
而不是sizeof(typeArray)
。 Sizeof只是以字节为单位给出数组的大小。您需要将其除以每个元素的大小,以获得元素的数量。
至于如何组合数组,我认为你对for循环有正确的想法,只需手动分配值。
示例伪代码:
for each element in typeArray
myVector[i][0] = typeArray[i];
myVector[i][1] = valArray[i];