std::vector Growth: reserve Before push_back vs Without

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

Snippet A

No Reserve

std::vector<int> buildVector(int n) {
    std::vector<int> v;
    for (int i = 0; i < n; ++i)
        v.push_back(i);
    return v;
}

std::vector<int> v = buildVector(kPushCount);
Snippet B

With Reserve

std::vector<int> buildVector(int n) {
    std::vector<int> v;
    v.reserve(n);
    for (int i = 0; i < n; ++i)
        v.push_back(i);
    return v;
}

std::vector<int> v = buildVector(kPushCount);
Shared test data (shared-setup)
constexpr int kPushCount = 128;

Which snippet is faster?

Select the correct answer(s)