Поток от станд.:: строка, не делая копию?

Если Вы ищете информацию относительно бесплатных и лицензий Open Source полезная сравнительная таблица: http://en.wikipedia.org/wiki/Comparison_of_free_software_licences

9
задан Tim Sylvester 19 October 2009 в 17:39
поделиться

2 ответа

Причина, по которой у вас возникла эта проблема, заключается в том, что std :: string на самом деле не подходит для того, что вы делаете. Лучшая идея - использовать вектор char при передаче необработанных данных. Если это возможно, я бы просто изменил все, чтобы использовать vector, используя vector :: swap и ссылки на векторы как соответствующие, чтобы исключить все ваше копирование. Если вам нравится api iostreams / streambuf или если вам нужно иметь дело с чем-то, что требует streambuf, было бы тривиально создать собственный streambuf, который использует вектор, как ваш. По сути, он будет делать то же самое, что и вы, с теми же проблемами, которые перечислены в других ответах, но вы не нарушите контракт класса.

4
ответ дан 4 December 2019 в 23:40
поделиться

имхо, лучший выбор - устаревший класс std::strstream

2
ответ дан 4 December 2019 в 23:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: