Вот часть моего кода, где я пытаюсь проанализировать 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], но не могу этого сделать, когда вставляю строку в вектор строк.