Но это наиболее оптимально? Есть ли способ сохранить внутренний буфер stringstream, чтобы следующие вызовы оператора <() не требовали резервирования памяти еще раз?
Ответ 1
Я всегда делал:
s.clear();//clear any bits set
s.str(std::string());
@litb подробно описывает о том, как искать в начале потока в сочетании с std:: end, вы можете сохранить свой выделенный размер.