【发布时间】:2014-09-19 22:25:30
【问题描述】:
我正在尝试创建一个矩阵类,到目前为止,我已经创建了一个可以创建向量向量的成员,但如果需要,我不确定如何调整向量的大小。
EX:resizeArray(3,3) 应该返回一个 3x3 向量。
另外,由于某种原因,当我调用默认成员 matrix() 时,我收到一条错误消息,提示... “请求 myMatrix 中的成员 numrows,其类型为 matrix[][]” 我不完全确定这是什么要求,也无法在其他地方找到合适的答案。
提前致谢
#include <iostream>
#include <vector>
using namespace std;
template <typename Object>
class matrix
{
public:
matrix( ) : array( 1 )
{
rows = 1;
cols = 1;
for( int i = 0; i < rows; i++ )
array[ i ].resize( cols );
}
matrix( int rows, int cols ) : array( rows )
{
for( int i = 0; i < rows; i++ )
array[ i ].resize( cols );
}
const vector<Object> & operator[]( int row ) const
{
return array[ row ];
}
vector<Object> & operator[]( int row )
{
return array[ row ];
}
int numrows( ) const
{
return array.size( );
}
int numcols( ) const
{
return numrows( ) ? array[ 0 ].size( ) : 0;
}
void resizeArray(int rows, int cols)
{
}
private:
vector< vector<Object> > array;
int rows;
int cols;
};
int main()
{
matrix<int> myMatrix(3,2);
//matrix<int> myMatrix1();
cout << myMatrix.numrows();
cout << "\n";
cout << myMatrix.numcols();
system("PAUSE");
return 0;
}
【问题讨论】:
-
你可以从我添加到stackoverflow.com/questions/17259877/… 的例子中得到一个想法。 (请注意,它是一维矩阵类。)
-
这是一个很好的链接,但最终我的问题是我不知道如何将矩阵传递给我的函数然后调整它的大小。我知道我应该能够以与创建对象的方式类似的方式执行此操作,但我无法提出可行的解决方案。