vector :: size_type en C ++

¿Qué significa esta statement de C ++?

vector::size_type x; 

Y, ¿cuál es el uso del operador de scope :: aquí? En otras palabras, ¿cómo leemos esta statement en inglés?

Por ejemplo, para X::x(){...} , decimos que x() es una member function de la class X

size_type es un tipo de miembro (estático) del tipo vector . Por lo general, es un typedef para std::size_t , que en general es un typedef para unsigned int o unsigned long long .

Lo leería como “declarar x como una variable de un tipo adecuado para mantener el tamaño de un vector”. El vector define su propio tipo para su longitud, y siempre es más limpio usarlo si es posible, en lugar de “adivinar” y usar int , unsigned int , long , unsigned long o size_t etc. directamente como lo necesitaría hacer de otra manera.

vector es una plantilla

por lo que el tipo de vector templated con int tiene un miembro typedef llamado size_type . x se define como una variable de ese tipo.