У меня есть ситуация, когда мне нужно обрабатывать большие (много GB) количества данных как таковых:
- постройте большую строку, добавив много меньших (C char *) строк
- обрезать строку
- преобразовать строку в С++ const std::string для обработки (только для чтения)
- повторить
Данные на каждой итерации независимы.
Мой вопрос заключается в том, что я хотел бы свести к минимуму (если это возможно исключить) использование памяти с помощью кучи, поскольку на данный момент это самая большая проблема с производительностью.
Есть ли способ конвертировать строку C (char *) в строку stl С++ (std::string), не требуя std::string для внутреннего размещения/копирования данных?
В качестве альтернативы, могу ли я использовать строковые потоки или что-то подобное для повторного использования большого буфера?
Изменить: Спасибо за ответы, для ясности я думаю, что пересмотренный вопрос:
Как я могу построить (через несколько добавлений) строку stl С++ эффективно. И если выполнение этого действия в цикле, где каждый цикл полностью независим, как я могу повторно использовать это выделенное пространство.