
Сообщение от
Fantom.AS
Не работает. Я это сразу попробовал. Значение элемента матрицы не меняется...
А... я забыл просто про одну особенность))
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
| typedef unsigned int uint;
struct Test
{
uint x,y; //размеры матрицы
int** myMatrix; //это сама матрица
Test() //инициализация дин. матрицы
{
x=10; y=10; //стартовые размеры матрицы
myMatrix = new int*[y]; //создали строки матрицы
for( uint iy= 0; iy< y; ++iy)
{
myMatrix[iy]= new int[x]; //создали элементы строки матрицы
for (uint ix=0; ix<x; ++ix)
{
myMatrix[iy][ix]=5; //заполнили матрицу пятёрками
}
}
}
~Test()
{
for( uint iy= 0; iy< y; ++iy)
{
delete[] myMatrix[iy]; //удалим элементы строки
}
delete [] myMatrix; //удалим саму матрицу
}
//вернёт строку из матрицы
int*& operator[] (uint val) { return myMatrix[val]; }
};
int main()
{
Test matrix;
uint x=3, y=4;
matrix[y][x]=1; //записали в матрицу
int* line = matrix[y]; //вернёт строку из матрицы
int val = matrix[y][x]; //вернёт элемент
} |
|
Гм?)
Добавлено через 7 минут
хотя.. вот щас проверил по человечески... у меня лично все прекрасно и старый вариант записывал