С++:Лучший текстовый аккумулятор
-
18-09-2019 - |
Вопрос
Текст накапливается по частям перед отправкой клиенту.
Теперь мы используем собственный класс, который выделяет память для каждого фрагмента в виде массива символов.(Во всяком случае, работает как char[][]
+ std::list<char*>
).
Затем мы создаем всю строку, преобразуем ее в std::sting и затем создаем boost::asio::streambuf
используй это.Полагаю, это достаточно медленно.Поправьте меня если я ошибаюсь.
Я знаю, во многих случаях просто FILE
введите из stdio.h
используется.Как это работает?Выделяет память при каждой записи в нее.Итак, быстрее ли это и есть ли способ прочитать boost::asio::streambuf
от FILE
?
ДОБАВЛЯТЬ:Хм.Я забыл одну важную вещь :).Компиляция dll и основного приложения производится под несколькими компиляторами, поэтому внутри него не должно быть никаких stl-материалов...Потому что это обычно вызывает много проблем при запуске dll.
Решение
Понятия не имею, насколько это эффективно, но обычно для таких целей я использую ostringstream.
Другие советы
Проверить http://www.sgi.com/tech/stl/Rope.html