<分区>
我想用一个二维数组初始化一个单位矩阵(主对角线上的一个和其他地方的零)。
我尝试用 vector
来实现它.代码是这样的:
vector<vector<int> > matrix;
matrix.resize(n);
for(auto &i: matrix)
i.resize(n);
// initialize...
这比只有 int matrix[n][n]
的普通数组要复杂得多.我不这样做是因为我想返回这个二维矩阵。所以函数是这样的:
matrix_type
func(int n)
{
//intialize the matrix
...
}
因为C++11中的数组是这样的:
array<Elem,N> arr;
我不知道如何在运行时获取 N。然后我决定使用 vector 。
那么有没有更好的方法来处理这个问题?(不使用传统数组)
感谢您的回答。这个问题可以通过使用来解决
vector<vector<int>> matrix(n, std::vector<int>(n));
还有,另一个问题。如果我是一个笨蛋,只想使用接口(interface),也就是说,我希望返回类型是
array<int,n>
.那么有没有什么方法可以在运行时获取N并返回呢?