两个不同尺寸的硬编码阵列组成一个二维矢量

Two Hard-coded Arrays OF DIFFERENT SIZES into One 2-Dimensional Vector

本文关键字:一个 二维 两个 编码 阵列      更新时间:2023-10-16

我意识到,如果我想让"valArray"填充到"COLUMN 0,0"的右边,我应该放"[j][1]",然而,当我这样做的时候,我总是会得到一个错误
输出:----------------------------------------------------------------------------------------------------------------------------------------------------55 0 0 0 0------------------------------------------------------------------------------------------------1 2 3 4 5 6 7 8 9 10 10 11——这是第2排-----------------------------------------------------------------------------------------------77 0 0 0 0------------------------------------------------------------------------------------------------88 0 0 0 0-----------------------------------------------------------------------------------------请告知如何正确填充,谢谢。

#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; 
 }

一个问题是循环应该一直到sizeof(typeArray)/sizeof(typeArray[0])而不是sizeof(typeArray)。Sizeof只是以字节为单位给出数组的大小。你需要把它除以每个元素的大小,才能得到元素的数量。

至于如何组合数组,我认为您对for循环有正确的想法,只需手动分配值。

示例psuedo代码:

for each element in typeArray
myVector[i][0] = typeArray[i];
myVector[i][1] = valArray[i];

您的代码无法工作的原因是您没有为myVector分配任何值。

假设typeArray和valArray的长度相同,并且您想将它们分别放在一列中,请尝试类似于以下的方法

for (int j = 0; j < sizeof(typeArray)/sizeof(int); j++)
{
     myVector[j][0] = typeArray[j];
     myVector[j][1] = valArray[j];
}