I don’t know which one will be faster, but if I had to guess I’d say your second example is, especially since you’ve called the reserve member function to allocate a large space for expansion.
If you’re only concatenating strings use string::append (or string::operator+=).
If you’re going to convert numbers to their string representation, as well as format them during conversion, and then append the conversion results together, use stringstreams. I mention the formatting part explicitly because if you do not require formatting C++11 offers std::to_string which can be used to convert numeric types to strings.