Constant-sized vector
The std::vector can always grow dynamically, but there are two ways you can allocate an initial size:
This allocates initial size and fills the elements with zeroes:
std::vector<int> v(10);
v.size(); //returns 10
This allocates an initial size but does not populate the array with zeroes:
std::vector<int> v;
v.reserve(10);
v.size(); //returns 0
There is no way to define a constant size vector. If you know the size at compile time, you could use C++11's std::array aggregate.
#include <array>
std::array<int, 10> a;
If you don't have the relevant C++11 support, you could use the TR1 version:
#include <tr1/array>
std::tr1::array<int, 10> a;
or boost::array, as has been suggested in other answers.