Как прочитать обширный файл без исключения памяти?

У меня есть конструктор для генерации разреженной матрицы после чтения файла. Метод работает правильно, если результирующая разреженная матрица не велика. Тем не менее, я хочу прочитать большой файл (около 500.000 строк). Как прочитать обширный файл без исключения памяти? Матрица, которую она объявляет этой формы: vector<vector<int>> matrix;

MatriuSparse::MatriuSparse(const string nomFitxer) {
    fstream fitxer;
    fitxer.open(nomFitxer);

    int m_col;
    int m_row;
    int dimension = m_Nlinies;
    while (!fitxer.eof())
    {
        fitxer >> m_row >> m_col;
        if (dimension <= m_row|| dimension <= m_col) {
            if (m_col < m_row) {
                dimension = m_row;
                dimension++;
            }
            if (m_row < m_col) {
                dimension = m_col;
                dimension++;
            }
            matrix.resize(dimension);
            for (int i = 0; i < dimension; i++) {
                matrix[i].resize(dimension);
            }

            matrix[m_row][m_col] = 1;
        }
        matrix[m_row][m_col] = 1;
    }
    m_Nlinies = dimension;
    m_Ncol = m_Nlinies;
    fitxer.close();
}

0 ответов

Другие вопросы по тегам