Мне нужно проанализировать строку, содержащую список объектов через запятую, например a="1,2,3,4,5"
,
Я также хочу, чтобы тип объекта был взаимозаменяемым, он определяется typedef type val_type
,
Мой подход
vector<val_type> v();
istringstream iss(a); string x; val_type y;
while (getline(iss, x, ',') && istringstream(x) >> y) v.push_back(y);
Это работает, но, очевидно, работает намного медленнее (примерно в 5 раз) по сравнению с использованием atoi (), предполагая, что тип объекта является целым числом.
while (getline(iss, x, ',')) v.push_back(atoi(x.c_str()));
Ожидается ли такая огромная разница в производительности? Любой умный способ обойти эту проблему?
Задача ещё не решена.
Других решений пока нет …