Выборка элементов массива
F-R-O-S-T, спасибо вам огромное за потраченное на меня время! Доброй ночи.
Не за что Alex_Burn, . Доброй ночи .
Если тебе роют яму - не мешай, закончат, сделаешь бассейн.
Всем доброго времени суток! Я пытаюсь написать шаблон функции, используя рассмотренный ранее в этой теме алгоритм. Делаю я это следующим образом:
[Syntax='C++']
template <class burn>
int MaxOfSreiateElements(burn matrix[5][5])
{
int i, j;
const int n = 5;
const int m = 125;
const int l = 21;
burn vektor[m];
burn massive[l];
for (i = 0; i < m; i++) vektor = 0;
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
massive[matrix[i, j]+10]++; // <------ Ошибка - здесь
}
}
bool find = false;
j = 0;
// Формирование массива искомых элементов
for (i = 0; i < l; i++)
{
if (massive > 1) { vektor[j] = i - 10; find = true; j++; }
}
burn max = vektor[0];
// Поиск максимума
for (i = 0; i < j; i++)
{
if (vektor > max) max = vektor;
}
if (find) return max;
else return 8000;
}
[/Syntax]
Вызываю шаблон я так:
[Syntax='C++']
int matrix1[n][n] = {{4,1,8,-7,0},
{3,-7,5,1,4},
{-2,-5,0,2,3},
{9,1,6,-7,3},
{5,-1,4,-2,1}};
....
int num = NumberOfNotZeroLines(matrix1);
[/Syntax]
Но в строке функции
выдает ошибку
Cannot convert 'int*' to 'int'
Подскажите, пожалуйста, в чем причина. Ведь обычной функцией, а не шаблоном, все работает нормально.
[Syntax='C++']
template <class burn>
int MaxOfSreiateElements(burn matrix[5][5])
{
int i, j;
const int n = 5;
const int m = 125;
const int l = 21;
burn vektor[m];
burn massive[l];
for (i = 0; i < m; i++) vektor = 0;
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
massive[matrix[i, j]+10]++; // <------ Ошибка - здесь
}
}
bool find = false;
j = 0;
// Формирование массива искомых элементов
for (i = 0; i < l; i++)
{
if (massive > 1) { vektor[j] = i - 10; find = true; j++; }
}
burn max = vektor[0];
// Поиск максимума
for (i = 0; i < j; i++)
{
if (vektor > max) max = vektor;
}
if (find) return max;
else return 8000;
}
[/Syntax]
Вызываю шаблон я так:
[Syntax='C++']
int matrix1[n][n] = {{4,1,8,-7,0},
{3,-7,5,1,4},
{-2,-5,0,2,3},
{9,1,6,-7,3},
{5,-1,4,-2,1}};
....
int num = NumberOfNotZeroLines(matrix1);
[/Syntax]
Но в строке функции
Код: Выделить всё
massive[matrix[i, j]+10]++;
Cannot convert 'int*' to 'int'
Подскажите, пожалуйста, в чем причина. Ведь обычной функцией, а не шаблоном, все работает нормально.
massive[matrix[i,j]+10]++; - неверный синтаксис, должно быть massive[matrix[j]+10]++;
Albor, спасибо большое.