#include <iostream>
#include <vector>
using namespace std;
template < typename Object >
class matrix
{
public:
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; }
private:
vector< vector<Object> > array;
};
void copy( const matrix<int> &from, matrix<int> &to )
{
for( int i = 0; i < to.numrows(); ++i )
{
to[i] = from[i];
}
}
int main()
{
return 0;
}
#include <vector>
using namespace std;
template < typename Object >
class matrix
{
public:
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; }
private:
vector< vector<Object> > array;
};
void copy( const matrix<int> &from, matrix<int> &to )
{
for( int i = 0; i < to.numrows(); ++i )
{
to[i] = from[i];
}
}
int main()
{
return 0;
}