Это действительно вопрос только для моих собственных интересов, которые я не смог определить в документации.
Я вижу на http://www.cplusplus.com/reference/string/string/, что append имеет сложность:
"Unspecified, но обычно до линейной длины новой строки."
в то время как push_back() имеет сложность:
"Unspecified: обычно амортизируется константа, но до линейной длины новой строки".
В качестве примера игрушек предположим, что я хотел добавить символы "foo" в строку. Будет ли
myString.push_back('f');
myString.push_back('o');
myString.push_back('o');
и
myString.append("foo");
составляет ровно одно и то же? Или есть какая-то разница? Вы могли бы подумать, что добавление будет более эффективным, потому что компилятор будет знать, сколько памяти требуется для расширения строки указанным количеством символов, а push_back может потребоваться защитить память каждого вызова?