Поскольку я хотел обновить свою старую функцию обрезки C ++ с помощью подхода C ++ 11, я протестировал множество опубликованных ответов на этот вопрос. Я пришел к выводу, что я сохранил свое старое решение C ++!
Это самый быстрый по большому счету, даже добавление большего количества символов для проверки (например, \ r \ n я не вижу варианта использования для \ f \ v) все же быстрее, чем решения, использующие алгоритм.
std::string & trimMe (std::string & str)
{
// right trim
while (str.length () > 0 && (str [str.length ()-1] == ' ' || str [str.length ()-1] == '\t'))
str.erase (str.length ()-1, 1);
// left trim
while (str.length () > 0 && (str [0] == ' ' || str [0] == '\t'))
str.erase (0, 1);
return str;
}