Я пытался найти способ Matlab для создания элементов матрицы. Например, если в MatLab есть следующее:
>> A = [1 2; 3 4]
A =
1 2
3 4
>> A(1,1) = 5
Будет генерировать этот результат:
A =
5 2
3 4
Можно ли это сделать с помощью оператора() в c++? Заранее спасибо.
@редактировать
Извините, ребята, я думаю, что решение будет достигнуто указателем на функцию.
Я стараюсь быть более понятным. У меня есть матрица классов, я хочу изменить соответствующее значение класса с помощью оператора(), передав число, соответствующее строке и столбцу.
template<size_t I, size_t J>
class M
{
public:
M(double e00, ...)
{
// use arg_list :)
}
double& operator () (int i, int j)
{
return m[i-1][j-1];
}
private:
double m[I][J];
};
M<2,2> A(1,2,3,4);
A(1,1)=5.0;
A[1][1] = 5
. Или вы можете использовать один из многих существующих классовMatrix
(или написать свой собственный) и определить оператор()
.