This question is related to, but not quite the same as, this question.
Are there any benefits to using std::vector instead of std::str
As other answers mention, a vector could be marginally faster since it guarantees contiguous memory, even for small sizes, and doesn't add an extra null byte at the end. However, it is a lot simpler (code-wise) to concatenate two strings than it is to concatenate two vectors:
Using vector:
vector a, b;
// ...
vector c;
c.insert(c.end(), a.begin(), a.end());
c.insert(c.end(), b.begin(), b.end());
Using string:
string a, b;
// ...
string c = a + b;