История изменений
Исправление witaway, (текущая версия) :
Код можно значительно улучшить (считайте, это MVP алгоритма), но я уже очень сильно устал:
- Устранить кое-какие протечки памяти.
- Хранить спаны и вектора спанстрингов не на стеке, а в куче. Тогда, уверен, можно значительно ускорить работу засчёт избежания копирования.
- Сэкономить время на выделение памяти использовав арена-аллокатор.
- Всё собрать в какой-нибудь удобный класс типа
StringExpander
- Превратить SpanString в какой-нибудь удобный класс. Чтобы собирать из них строки не вручную. К тому же, можно придумать оператор обращения по индексу использовав бинарный поиск.
- Можно использовать
std::span
и ничего не поломается. - Да и вообще всё это безобразие надо привести в нормальный вид, подшлифовать, что ли…
Исправление witaway, :
Код можно значительно улучшить (считайте, это MVP алгоритма), но я уже очень сильно устал:
- Устранить кое-какие протечки памяти.
- Хранить спаны и вектора спанстрингов не на стеке, а в куче. Тогда, уверен, можно значительно ускорить работу засчёт избежания копирования.
- Сэкономить время на выделение памяти использовав арена-аллокатор.
- Всё собрать в какой-нибудь удобный класс типа
StringExpander
- Превратить SpanString в какой-нибудь удобный класс. Чтобы собирать из них строки не вручную. К тому же, можно придумать оператор обращения по индексу использовав бинарный поиск.
- Можно использовать
std::span
и ничего не поломается.
Исходная версия witaway, :
Код можно значительно улучшить, но я уже заебался:
- Устранить кое-какие протечки памяти.
- Хранить спаны и вектора спанстрингов не на стеке, а в куче. Тогда, уверен, можно значительно ускорить работу засчёт избежания копирования.
- Сэкономить время на выделение памяти использовав арена-аллокатор.
- Всё собрать в какой-нибудь удобный класс типа
StringExpander
- Превратить SpanString в какой-нибудь удобный класс. Чтобы собирать из них строки не вручную. К тому же, можно придумать оператор обращения по индексу использовав бинарный поиск.