Note that the `size` method does not return an object of type `T`, the type of the elements in the vector. Instead, it returns an object of type `size_t`. You can use the `auto` keyword in C++11 for the type here, and the compiler will handle it for you.

This happens to work, since `T` is an integer in all of the acceptance tests in `main`. However if `T` is a different type (e.g. `std::string`). Then this would fail to compile.