Не понимаю, откуда эта ошибка появляется. Уже изучил, почему она может вызываться, но мне это никак не помогло в поиске/решении проблемы. Что надо сделать?
Код с реализацией функций:
#pragma once
#include <vector>
#include <iostream>
#include <random>
template <typename T>
void create_huge_matrix(std::vector<std::vector<T>>& matrix, T lowerLimit);
template <typename T>
void create_freeMatrixColumn(std::vector<T>& freeMatrixColumn);
template <typename T>
inline void create_huge_matrix(std::vector<std::vector<T>>& matrix, T lowerLimit)
{
//std::vector<std::vector<T>> huge_matrix;
std::random_device random_device; // Источник энтропии
std::mt19937 generator(random_device()); // Генератор случайных чисел
std::uniform_int_distribution<> distribution(lowerLimit, lowerLimit * 2);
for (int i = 0; i < matrix[0].size(); i++)
{
for (int j = 0; j < matrix[0].size(); j++)
{
if (i == j) matrix[i][j] = distribution(generator);
else matrix[i][j] = rand() % 2;
}
}
}
template <typename T>
inline void create_freeMatrixColumn(std::vector<T> &freeMatrixColumn)
{
for (int i = 0; i < size; i++)
freeMatrixColumn[i] = (rand() % 100) / 10;
}
Часть кода из функции main.cpp (где вызываю/есть ошибка):
#include <iostream>
#include <vector>
#include <cmath>
#include "gauss_serial.h"
#include "gauss_parallel.h"
#include "huge_matrix.h"
bool check_answer(std::vector<double> answer, std::vector<double> freeMatrixCloumn, std::vector<std::vector<double>> matrix);
void create_new_freeColumn(std::vector<double>& v, std::vector<double>& answer, std::vector<std::vector<double>> matrix);
void keep_4_digits_after_point(std::vector<double>& v);
int main()
{
setlocale(LC_ALL, "utf-8");
int m; // количество строк
int n; // количество столбцов
double value; // значение элемента массива
std::vector<std::vector<double>> matrix_s, matrix_p, matrixForChecking; // матрица элементов без столбца свободных членов
std::vector<double> freeMatrixColumn_s, freeMatrixColumn_p, freeMatrixColumnForChecking; // столбец свободных членов
printf("Решение СЛАУ методом Гаусса\n");
// Задаём размерность матрицы
printf("Укажите размерность матрицы\n");
printf("Количество строк: ");
std::cin >> m;
matrix_s.resize(m);
matrix_p.resize(m);
matrixForChecking.resize(m);
printf("Количество столбцов: ");
std::cin >> n;
create_huge_matrix(matrix_s, 5);
create_huge_matrix(matrix_p);
create_huge_matrix(matrixForChecking);