テンプレート付き関数を使用して数値のリスト(intまたはdouble)をベクトルに読み込む単一の関数を書くうまい方法があるのでしょうか?ここでテンプレート関数を使用してCSVファイルから数値を読み取る
は、私は通常、何をすべきかです:
template<class VecType>
vector<VecType> read_vector(const string& file){
vector<VecType> vec;
ifstream indata;
indata.open(file);
string line;
while (getline(indata, line)) {
stringstream lineStream(line);
string cell;
while (std::getline(lineStream, cell, ',')) {
vec.push_back(stod(cell));
}
}
indata.close();
return vec;
}
私の問題はstoi
またはstod
一部です。これをうまく処理するにはどうすればいいですか?
私は通常何、stod
を使用してVecType
は、例えばint
ある場合、変換はdouble
からint
に自動的に発生させることです。しかし、これを行うにはもっと良い方法があるはずですよね?あなたが専門的なテンプレート持つことができ
を使用し、私の代わりに遅い – NULL
方法である 'stringstream'のラインから' cells'を読み取るより良い方法をいただければと思います約 'VecType e; cellStream >> e; vec.push_back(e); '? – Jarod42