如何手动输入数据矩阵?

时间:2011-05-21 01:34:46

标签: c++ vector matrix g++

我只想使用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 个答案:

答案 0 :(得分:4)

最简单的方法是最简单的(没有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}};

答案 1 :(得分:4)

如果您不打算更改此矩阵的大小或形状,并且因为您无论如何都要对值进行硬编码,那么使用普通的旧数组可能会更好:

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

否则,Fred Nurk's answer就是你要找的。