VC6.0 dynamic matrix

6 отговора 210 прегледа
#1

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

Отговор
в отговор на MacroSoft #2

кратък отговор...

защо не опиташ с STL???

най-често умните хора са и лоши
Отговор
в отговор на MacroSoft #3

Re: VC6.0 dynamic matrix

направи си CArray от pointer-и или typed pointer-и и всеки pointer ще ти сочи CArray

Отговор
в отговор на MacroSoft #4

Re: VC6.0 dynamic matrix

Matrix Reloaded
хехехе


Я вышел им наперерез!
Отговор
в отговор на MacroSoft #5

Re: VC6.0 dynamic matrix

Boost mislia che imashe nesto podobno:

[линк]

Отговор
в отговор на MacroSoft #6

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
Отговор
в отговор на MacroSoft #7

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);
}

Отговор