Я пытаюсь уменьшить каждое значение char
в std::stringstream
на 100
:
std::string str = stream.str();
auto decrement = [](char c) { return c - 100; };
std::string out;
out.reserve(str.size());
std::transform(str.begin(), str.end(), std::back_inserter(out), decrement);
stream = std::stringstream(out);
Но потребовалось 7 минут, застрявших в команде std::transform
. Это для текстового файла 150 мБ.
Я не использую оптимизированную сборку. Это отладочная сборка. Цель состоит в том, чтобы иметь код, который работает быстрее для целей отладки. Результаты релиза являются вторичными для этого вопроса.
Любые предложения о том, как повысить эффективность?