【发布时间】:2011-11-11 11:56:02
【问题描述】:
所以我试试这个:
std::vector< std::vector<int> > matrix(4);
matrix[0][0] = 1;
matrix[0][1] = 2;
matrix[0][2] = 3;
matrix[0][3] = 1;
matrix[1][0] = 1;
matrix[1][1] = 2;
matrix[1][2] = 3;
matrix[1][3] = 1;
matrix[2][0] = 1;
matrix[2][1] = 2;
matrix[2][2] = 3;
matrix[2][3] = 1;
matrix[3][0] = 1;
matrix[3][1] = 2;
matrix[3][2] = 3;
matrix[3][3] = 1;
但是出了点问题,我的应用在运行时死掉了=(怎么办?如何正确地将值嵌入向量的向量中?
【问题讨论】:
-
除了不调整向量的大小,还能用c++11吗?
-
不,遗憾的是我没有 C++11=(
-
但我确实想知道如何在 C++11 中以不同的方式做到这一点?
-
您可能希望提供一个模拟矩阵的类,该类具有 4x4 元素的单个分配和
operator()(int,int)来访问每个元素。这是提供 N 维数组的常见模式(单个分配器,获取 N 个索引并在内部执行算术的访问器) -
@user1040114: c++11 可以使用类似
{{1,2,3,4},{5,6,7,8}}之类的统一初始化语法...您也可以在 c++03 中使用 boost assign