Zero Then Ten

std::vector<int> v;
v.reserve(10);
std::cout << v.size() << " " << v.capacity() << "\n";

v.resize(3);
std::cout << v.size() << " " << v[0] << "\n";

Assuming a typical implementation, what is printed?

A

0 0 then 3 0, because reserve is only a hint the implementation may ignore.

B

0 10 then 3 0

C

0 10 then 3 followed by an unspecified value, because resize only grows the size and leaves the new ints uninitialized.

D

10 10 then 3 0