Как решить ошибку индексирования динамического двумерного массива?

Нужно найти меньшее значение в динамическом двумерном массиве. По большему счёту весь код готов но в местах индексирования выдает ошибку C2676 "бинарный "[": "Matrix" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору"

Вот код:
template<typename T, size_t rows, size_t cols>
inline int Matrix<T, rows, cols>::findSmallest(Matrix<T, rows, cols>& m)
{
    int resNum = m[0][0];
    for (size_t i = 0; i < rows; i++)
    {
        for (size_t j = 0; j < cols; j++)
        {
            if (m[i][j] < resNum)
            {
                resNum = m[i][j];
            }
        }
    }
    return resNum;
}


P.S. Вот определение в классе :
int findSmallest(Matrix<T, rows, cols>& m);
  • Вопрос задан
  • 62 просмотра
Пригласить эксперта
Ответы на вопрос 2
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
Вы работаете с matrix, как если бы это был массив, но у вас это не массив. Или переопределите оператор [] или как-то выдавайте из matrix наружу T**.
Ответ написан
Комментировать
@pogoreli
Почему i и j оба считают rows? Мне кажется, что тут должно быть out of bonds exception. I должно быть rows, j- columns.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы