Que signifie cette instruction C++?
vector<int>::size_type x;
Et, à quoi sert l’opérateur d’étendue ::
Ici? En d'autres termes, comment lisons-nous cette déclaration en anglais?
Par exemple, pour X::x(){...}
, nous disons que x()
est un member function
De class X
.
size_type
est un type de membre (statique) de type vector<int>
. Il s'agit généralement d'un typedef
pour std::size_t
, qui lui-même est généralement un typedef
pour unsigned int
ou unsigned long long
.
Je le lirais comme "déclarer x comme une variable d'un type approprié pour contenir la taille d'un vecteur". Le vecteur définit son propre type pour sa longueur, et il est toujours plus propre de l'utiliser si possible, plutôt que de "deviner" et d'utiliser int
, unsigned int
, long
, unsigned long
ou size_t
etc directement comme vous auriez dû le faire autrement.
le vecteur est un modèle
donc le type vector
basé sur int
a un membre typedef
appelé size_type
. x
est défini comme une variable de ce type.