Здесь я пытаюсь написать библиотечную функцию для умножения матриц. И эта функция должна поддерживать все типы данных, такие как float, int, et c. Вот почему я использовал шаблон здесь. Но мне трудно передавать 2-мерные массивы в функцию.
Q) void matrix_mul(T a[][2], T b[][2], T c[][2], ll p, ll q, ll r)
как я могу передать 2-мерные массивы без необходимости передавать второй параметр, т. Е. T a[][2]
?
Q) Я хочу записать эти функции в другой файл и затем импортировать его в основной файл, точно так же, как мы импортируем стандартные библиотеки?
PS: я новичок в CPP. Пожалуйста, направьте меня к ресурсам, если на эти вопросы уже дан ответ. TIA
template <class T>
void matrix_mul(T a[][2], T b[][2], T c[][2], ll p, ll q, ll r){
for (ll i = 0; i < p; ++i)
for (ll j = 0; j < q; ++j)
for (ll k = 0; k < r; ++k)
c[i][j] += a[i][k] * b[k][j];
}
int main(){
io;
ll p = 2, q = 2, r = 2;
ll a[2][2] = {{1, 1}, {1, 1}};
ll b[2][2] = {{1, 1}, {1, 1}};
ll c[2][2] = {0};
for (ll i = 0; i < p; ++i)
for (ll j = 0; j < r; ++j)
c[i][j] = 0;
matrix_mul(a, b, c, p, q, r);
for (ll i = 0; i < p; ++i){
for (ll j = 0; j < r; ++j)
cout << c[i][j] << "\t";
cout << nl;
}
return 0;
}
ОБНОВЛЕНИЕ : После чтения C ++ я смог найти рабочее решение (см. Ниже).