我只想使用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
答案 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就是你要找的。 p>