String Building: Two Concatenation Styles

Question 42 / 51 Correct so far: 0 (0 answered)

Snippet A

String Plus

std::string buildString(const std::vector<std::string>& fragments) {
    std::string result;
    for (const auto& frag : fragments)
        result = result + frag;
    return result;
}

std::string s = buildString(FRAGMENTS);
Snippet B

String Plus Eq

std::string buildString(const std::vector<std::string>& fragments) {
    std::string result;
    for (const auto& frag : fragments)
        result += frag;
    return result;
}

std::string s = buildString(FRAGMENTS);
Shared test data (shared-setup)
static const std::vector<std::string> FRAGMENTS = []() {
    std::vector<std::string> v;
    for (int i = 0; i < 200; ++i)
        v.push_back("fragment" + std::to_string(i) + "_");
    return v;
}();

Which snippet is faster?

Select the correct answer(s)