У меня есть класс "Матрица". И в нём нужно перегрузить оператор []
так, дабы при обращении [][]
к элементам имело смысл, аналогично встроенному. Пробовал так:
Matrix& operator[][](int a,int b);
Не получилось, поиски в Google ни к чему не привели. Может кто-то знает как реализовать?
Определите оператор []
, который будет возвращать строку - как указатель, вектор или еще что-то, для чего определен оператор []
, который будет возвращать ссылку на конкретный элемент...
Простейший пример:
class Matrix
{
public:
Matrix(int R, int C):R(R),C(C)
{
d = new int*[R];
for(int i = 0; i < R; ++i)
d[i] = new int[C];
}
~Matrix()
{
for(int i = 0; i < R; ++i)
delete[] d[i];
delete[] d;
}
int* operator[](int idx) { return d[idx]; }
const int* operator[](int idx) const { return d[idx]; }
private:
int ** d;
int R, C;
};
int main()
{
Matrix M(3,3);
for(int i = 0; i < 3; ++i)
for(int j = 0; j < 3; ++j)
M[i][j] = 10*i + j;
for(int i = 0; i < 3; ++i)
{
for(int j = 0; j < 3; ++j)
{
cout << setw(2) << M[i][j] << " ";
}
cout << endl;
}
}
Естественно, никакие ошибки у меня не обрабатываются.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Каким образом настроить компиляцию на удаленной машине java-приложения ? В netbeans все достаточно просто и работает безотказно, а вот в intellij idea никак...
Как менять xml атрибуты макетов через Java код android? Вначале подумал об использовании регулярных выражений, но мне сказали, что "парсить регулярками...