Почему я не могу вызвать элемент строкового вектора вместо строки? - PullRequest
0 голосов
/ 11 ноября 2019

Вот часть моего кода, где я пытаюсь проанализировать CSV-файл в 2D-вектор и создать карту

#include "csvreader.h"
#include <map>
#include <iomanip>
#include <fstream>
#include <sstream>


extern std::vector<std::string> str;
extern std::vector<int> idx;

csvreader::csvreader(std::string file_name)
{
    this->file_name = file_name;
} 

std::vector<std::vector<std::string>> csvreader::read_csv(std::map<std::string, std::map<std::string, int> >& freq_table)
{
std::string file_name = " ";
std::vector<std::vector<std::string> > csv_data;
std::vector<std::string> tuple;
std::ifstream csvfile(file_name);
int row = 0;
int col = 0;
std::string line;
std::vector<std::string> data;
while (csvfile)
{
    std::getline(csvfile, line);
    std::string newline;
    newline = line + "\n";
    data.push_back(newline);
}
col = count(data.at(0).begin(), data.at(0).end(), ',') + 1;
row = data.size() - 1;
csvfile.close();
std::ifstream csvfile(file_name);

std::string temp;
for (int j = 0; j < col; j++)
{
    std::getline(csvfile, temp, ',');
    str.push_back(temp);
    freq_table[str(j)] = std::map<std::string, int>();
    idx.push_back(j);
}

Моя проблема возникает в этой части

std::string temp;
for (int j = 0; j < col; j++)
{
    std::getline(csvfile, temp, ',');
    str.push_back(temp);
    freq_table[str(j)] = std::map<std::string, int>();
    idx.push_back(j);
}

Я могу вызвать freq_table [temp], но не могу этого сделать, когда вставляю строку в вектор строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...