Как мне вручную ввести в матрицу данных? - PullRequest
0 голосов
/ 21 мая 2011

Я просто хочу жестко закодировать в матрице, используя C ++ (g ++ 4.1.2), по умолчанию я использовал std :: vector из std :: vectors.

Полагаю, это можно сделать в одну строку. Я просто не знаю правильный синтаксис.

Например:

(1,2,5)

(9,3,6)

(7,8,4)

Я думал, что это может быть что-то вроде этого -

  vector<int> v1(1,2,3);
  vector<int> v2(4,5,6);
  vector<int> v3(7,8,9);
  vector<vector<int>> vA(v1,v2,v3);

Обычно я читаю эту информацию из текстового файла, но мне нужно вручную вводить числа вручную, и я должен использовать g ++ 4.1.2

Ответы [ 2 ]

4 голосов
/ 21 мая 2011

Если вы не собираетесь изменять размер или форму этой матрицы и поскольку вы все равно жестко кодируете значения, вам может быть лучше использовать простой старый массив:

int matrix[][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};

В противном случае, Ответ Фреда Нурка - это то, что вы ищете.

4 голосов
/ 21 мая 2011

Самый простой способ - самый простой (без C ++ 0x):

vector<vector<int> > v (3);
for (int a = 0; a != 3; ++a) {
  v[a].resize(3);
  for (int b = 0; b != 3; ++b) {
    v[a][b] = a * 3 + b + 1;
  }
}

С инициализаторами 0x, которые я сомневаюсь, что версия gcc поддерживает:

vector<vector<int>> v = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
...