Лучший способ очистить stringstream?

Одна из возможностей:

somestringstream.str("");

Но наиболее ли он оптимален? Есть ли способ сохранить внутренний буфер строкового потока, чтобы следующие вызовы оператора‹‹() не требовали повторного резервирования памяти?


person Community    schedule 07.05.2009    source источник
comment
Это обсуждалось здесь: stackoverflow.com/questions/624260/   -  person Johannes Schaub - litb    schedule 07.05.2009


Ответы (1)


Я всегда делал:

s.clear();//clear any bits set
s.str(std::string());

@litb более подробно рассказывает о том, как искать начало поток в сочетании с std::ends вы можете сохранить выделенный размер.

person Brian R. Bondy    schedule 07.05.2009
comment
или просто ss.str(); // более интуитивно понятный - person Milan; 07.05.2009
comment
@ milan1612: Вам все равно нужно очистить биты, и отправка char * в стиле C будет медленнее. - person Drew Dormann; 18.05.2009
comment
..и это объясняет, почему вариант s.str(std::string()) < я>может быть более эффективным. - person Andreas Spindler; 26.01.2012