Análise CSV rápida e simples em C ++

Eu estou tentando analisar um arquivo CSV simples, com dados em um formato como:

20.5,20.5,20.5,0.794145,4.05286,0.792519,1
20.5,30.5,20.5,0.753669,3.91888,0.749897,1
20.5,40.5,20.5,0.701055,3.80348,0.695326,1

Então, um arquivo de formato muito simples e fixo. Eu estou armazenando cada coluna desses dados em um vetor STL. Como tal, tentei manter a forma C ++ usando a biblioteca padrão, e minha implementação dentro de um loop se parece com algo como:

string field;
getline(file,line);
stringstream ssline(line);

getline( ssline, field, ',' );
stringstream fs1(field);
fs1 >> cent_x.at(n);

getline( ssline, field, ',' );
stringstream fs2(field);
fs2 >> cent_y.at(n);

getline( ssline, field, ',' );
stringstream fs3(field);
fs3 >> cent_z.at(n);

getline( ssline, field, ',' );
stringstream fs4(field);
fs4 >> u.at(n);

getline( ssline, field, ',' );
stringstream fs5(field);
fs5 >> v.at(n);

getline( ssline, field, ',' );
stringstream fs6(field);
fs6 >> w.at(n);

O problema é que isso é extremamente lento (há mais de 1 milhão de linhas por arquivo de dados), e parece-me um pouco deselegante. Existe uma abordagem mais rápida usando a biblioteca padrão ou devo usar apenas funções stdio? Parece-me que este bloco de código inteiro reduziria a uma única chamada fscanf.

Desde já, obrigado!

questionAnswers(3)

yourAnswerToTheQuestion