vector<int>::size_type in C++

Solution 1:

size_type is a (static) member type of the type vector<int>. Usually, it is a typedef for std::size_t, which itself is usually a typedef for unsigned int or unsigned long long.

Solution 2:

I would read it as "declare x as a variable of a type suitable for holding the size of a vector". The vector defines its own type for its length, and it's always cleanest to use that if possible, rather than "guessing" and using int, unsigned int, long, unsigned long or size_t etc directly as you'd otherwise need to do.

Solution 3:

vector is a template

so the vector type templated with int has a member typedef called size_type. x is defined as a variable of that type.

Solution 4:

Different implementations use different types to represent sizes, so we cannot write the appropriate type directly and remain implementation-independent. For that reason, it is good programming practice to use the size_type that the library defines to represent container sizes.

- Accelerated C++ by Andrew Koenig and Barbara E. Moo