Тип массива ‘float [size]’ не может быть назначен

У меня есть метод шаблона, в котором я пытаюсь поместить объекты в массив. Я продолжаю получать ошибку названия все же. Ниже мой следующий код:

template <class Object>
void SparseMat<Object>::showSubSquare(int start, int size) {
for (int rowIndex = start; rowIndex < start + size; rowIndex++) {
Object objectsInRow[size];
FHlist<MatNode<Object>> wantedRow = matrix[rowIndex];
for (iterator<MatNode<Object>> iter = wantedRow.begin(); iter != wantedRow.end(); ++iter) {
MatNode<Object> m = *iter;
objectsInRow[m.getCol()] = m.data; //ERROR
}
for (int colIndex = start; colIndex < start + size; rowIndex++) {
if (objectsInRow[colIndex] == NULL) {
cout << defaultValue << " ";
}
else {
cout << objectsInRow[colIndex] << " ";
}
}
cout << endl;
}
}

Для справки, m.getCol () просто возвращает int, так что это не вызывает ошибку. Кроме того, матрица — это вектор списков, а FHlist — это самореализуемый список с той же базовой утилитой.

Я использую функцию шаблона следующим образом:

typedef SparseMat<float> SpMat;

int main()
{
SpMat mat(MAT_SIZE, MAT_SIZE, 0);

mat.showSubSquare(0, 15);
}

Точная ошибка: «ошибка C3863: тип массива ‘float [size]’ не может быть назначен»

-2

Решение

«размер» не является константой во время компиляции, это вызовет сбой;

План А:

Измените это с помощью std :: vector,

План б:

используя «новый тип [размер]»

План C:

template <int _size> // this is the const value for the compiling time
void func()
{
type array[_size];
// your code ...
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]