VC6.0 dynamic matrix
6 отговора
210 прегледа
VC6.0 dynamic matrix
Nqkoi moje li da mi kaje kak da definiram dinamichna matritsa?
Gledah Template-tite CArray i drugi razni takiva, no te mai ne pozvolqvat:
CArray<CArray,CArray>; i posle za vseki element da mu davam dyljina
Gledah Template-tite CArray i drugi razni takiva, no te mai ne pozvolqvat:
CArray<CArray,CArray>; i posle za vseki element da mu davam dyljina
Re: VC6.0 dynamic matrix
направи си CArray от pointer-и или typed pointer-и и всеки pointer ще ти сочи CArray
Re: VC6.0 dynamic matrix
Знам за топлата вода, но ето последиците от тоталното отричане на атърсенето и. Не разбирам как може програмисти да търсят решения на такива проблеми, след години може би някой ще пита: "каква функция да използвам за да си направя ИИ".
<pre>
#define mptype char //char, int, float,... ( for example )
class matrix
{
unsigned width, height;
void *mem;
public:
matrix( unsigned rowz, unsigned colz );
void put( unsigned rindex, unsigned cindex, mptype *value );
mptype* get( unsigned rindex, unsigned cindex );
~matrix( );
}
matrix::matrix( unsigned rowz, unsigned colz )
{
mem = ( mptype * ) malloc( rowz * colz * sizeof( mptype ) );
width = colz;
height = rowz;
}
void matrix::put( unsigned rindex, unsigned cindex, mptype *value )
{
if( ( rindex <= height ) && ( cindex <= width ) )
mem[rindex * width + cindex] = &value );
}
mptype* matrix::get( unsigned rindex, unsigned cindex )
{
return &mem[rindex * width + cindex];
}
matrix::~matrix( )
{
free( mem );
}
example
void main( )
{
char c1 = 'a', *c2;
matrix example_matrix( 4, 4 );
example_matrix.put( 2, 2, c1 );
c2 = example_matrix.get( 2, 2 );
}
</pre>
bye
I wanna read interesting postingz
<pre>
#define mptype char //char, int, float,... ( for example )
class matrix
{
unsigned width, height;
void *mem;
public:
matrix( unsigned rowz, unsigned colz );
void put( unsigned rindex, unsigned cindex, mptype *value );
mptype* get( unsigned rindex, unsigned cindex );
~matrix( );
}
matrix::matrix( unsigned rowz, unsigned colz )
{
mem = ( mptype * ) malloc( rowz * colz * sizeof( mptype ) );
width = colz;
height = rowz;
}
void matrix::put( unsigned rindex, unsigned cindex, mptype *value )
{
if( ( rindex <= height ) && ( cindex <= width ) )
mem[rindex * width + cindex] = &value );
}
mptype* matrix::get( unsigned rindex, unsigned cindex )
{
return &mem[rindex * width + cindex];
}
matrix::~matrix( )
{
free( mem );
}
example
void main( )
{
char c1 = 'a', *c2;
matrix example_matrix( 4, 4 );
example_matrix.put( 2, 2, c1 );
c2 = example_matrix.get( 2, 2 );
}
</pre>
bye
I wanna read interesting postingz
Re: VC6.0 dynamic matrix
Ако ползваш STL - пробвай това:
-------------------------------------------
-------------------------------------------
-------------------------------------------
#include <vector>
#include <iomanip>
#include <iostream>
using namespace std;
typedef vector<int> TIntRow;
typedef vector<TIntRow> TIntMatrix;
void Print(const TIntMatrix& matrix)
{
for(int i=0;i<matrix.size();i++)
{
const TIntRow& row = matrix;
for(int j=0;j<row.size();j++)
{
cout << "[" << i << "," << j << "]=" << setw(2) << row[j] << " ";
}
cout << endl;
}
cout << endl;
}
void main()
{
TIntMatrix matrix;
for(int i=0;i<5;i++)
{
TIntRow row;
for(int j=0;j<5;j++)
{
row.push_back(i*10 + j);
}
matrix.push_back(row);
}
Print(matrix);
}
-------------------------------------------
-------------------------------------------
-------------------------------------------
#include <vector>
#include <iomanip>
#include <iostream>
using namespace std;
typedef vector<int> TIntRow;
typedef vector<TIntRow> TIntMatrix;
void Print(const TIntMatrix& matrix)
{
for(int i=0;i<matrix.size();i++)
{
const TIntRow& row = matrix;
for(int j=0;j<row.size();j++)
{
cout << "[" << i << "," << j << "]=" << setw(2) << row[j] << " ";
}
cout << endl;
}
cout << endl;
}
void main()
{
TIntMatrix matrix;
for(int i=0;i<5;i++)
{
TIntRow row;
for(int j=0;j<5;j++)
{
row.push_back(i*10 + j);
}
matrix.push_back(row);
}
Print(matrix);
}