std::vector Pre-allocation: reserve vs resize

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

Snippet A

Reserve Assign

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

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

Resize Assign

std::vector<int> buildVector(int n) {
    std::vector<int> v;
    v.resize(n);
    for (int i = 0; i < n; ++i)
        v[i] = i * 2;
    return v;
}

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

Which snippet is faster?

Select the correct answer(s)