typedef map<int, double> SparseRow;
template <int N> struct SparseMatrix
{
map<int, SparseRow> data;
};
const int N = 5;
SparseMatrix<N> sparseMat;
我对这里如何使用模板类型 N 感到困惑?谁能解释为什么它使这张地图固定大小?
////////////////////////////////
编辑
这是一个打印函数和对它的调用
print(sparseMat);
template <int N>
void print(SparseMatrix<N>& sm)
{
SparseRow sr;
SparseRow::const iterator it;
for (int row = 0; row < N; row++)
{
SparseRow sr = sm.data[row];
// Now iterate over row
for (it = sm.data[row].begin(); it != sm.data[row].end();
it++)
{
cout << (*it).second << ", ";
}
cout << endl;
}
}
如果值 N 不在函数调用中,它如何传递给函数?我对 SparseMatrix 的实例如何保存像假设 5 这样的值感到困惑?