Я использую 2 МНОЖЕСТВА РАЗЛИЧНЫХ РАЗМЕРОВ в одном 2-мерном векторе, и мои выходные данные неверны. Массивы имеют размер 4 и размер 13.
Я хочу, чтобы КОЛОННА 0 имела: 55, 66, 77, 88.
Я хочу, чтобы КОЛОННЫ 1-12 имели 1,2,3,4,5,6,7,8,9,10,10,10,11 в КАЖДОЙ СТРОКЕ.
Казалось бы, 2-й цикл для массива размера 13 должен был бы зацикливаться 4 раза, чтобы заполнить 4 строки, однако я не уверен, как это сделать.
Вот что у меня есть в коде и выводе:
#include <iostream>
#include <vector>
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};
// 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> (14,0));
for (int i = 0; i < myVector.size(); i++)
{
myVector[i][0] = typeArray[i];
for (int j = 0; j < myVector[i].size(); j++)
{
myVector[1][j] = valArray[j];
}
}
// print vector to screen with 4 ROWS, 1 COLUMNS
for (int i = 0; i < myVector.size(); i++)
{
for (int j = 0; j < myVector[i].size(); j++)
{
cout << myVector[i][j] << ' ';
}
cout << '\n';
}
OUTPUT ---------------------------------------------- -------------------------------------------------- -------------------------------------------------- -
55 0 0 0 0 0 0 0 0 0 0 0 0 ---- первый ряд ------------------------------- -------------------------------------------------- --------------------------------
1 2 3 4 5 6 7 8 9 10 10 10 11 ---- второй ряд ------------------------------- -------------------------------------------------- --------------------
77 0 0 0 0 0 0 0 0 0 0 0 0 ------- третий ряд ---------------------------- -------------------------------------------------- ----------------------------
88 0 0 0 0 0 0 0 0 0 0 0 0 ------- четвертый ряд
int typeArray[4] = {55,66,77,88};
int valArray[14] = {0,1,2,3,4,5,6,7,8,9,10,10,10,11};
// 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> (14,0));
for (int i = 0; i < myVector.size(); i++)
{
myVector[i][0] = typeArray[i];
for (int j = 0; j < myVector[i].size(); j++)
{
myVector[1][j + 1] = valArray[j];
}
}
// print vector to screen with 4 ROWS, 14 COLUMNS
for (int i = 0; i < myVector.size(); i++)
{
for (int j = 0; j <= myVector[i].size(); j++)
{
cout << myVector[i][j] << ' ';
}
cout << '\n';
}
ВЫВОД ---------------------------------------------- -------------------------------------------------- -------------------------------------------------- -
55 1 2 3 4 5 6 7 8 9 10 10 10 11 ---- первый ряд ------------------------------ -------------------------------------------------- -----------------------
66 1 2 3 4 5 6 7 8 9 10 10 10 11 ---- второй ряд ------------------------------ -------------------------------------------------- ------------------
77 1 2 3 4 5 6 7 8 9 10 10 10 11 ---- третий ряд ------------------------------ -------------------------------------------------- --------------------
88 1 2 3 4 5 6 7 8 9 10 10 10 11 ---- четвертый ряд
Это исправленный код для обновления Kerrek, он отлично работает:
int typeArray[4] = {55,66,77,88};
int valArray[13] = {1,2,3,4,5,6,7,8,9,10,10,10,11};
// 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> (14,0));
for (int i = 0; i < myVector.size(); i++)
{
myVector[i][0] = typeArray[i];
for (int j = 1; j < myVector[i].size(); j++)
{
myVector[i][j] = valArray[j - 1];
}
}
// print vector to screen with 4 ROWS, 14 COLUMNS
for (int i = 0; i < myVector.size(); i++)
{
for (int j = 0; j < myVector[i].size(); j++)
{
cout << myVector[i][j] << ' ';
}
cout << '\n';
}
ВЫХОД ТО ЖЕ КАК 2-Й БЛОК КОДА, ДА!