C++ taille de vecteur types

J'ai juste commencé à apprendre le C++ et avez une question sur les vecteurs.
Le livre que je suis en train de lire les états que si je veux extraire de la taille d'un vecteur de type double (par exemple), je dois faire quelque chose comme:

vector<double>::size_type vector_size;
vector_size = myVector.size();

Alors qu'en Java je pourrais faire

int vector_size;
vector_size = myVector.size();

Ma question est, pourquoi est-il un type nommé vecteur::size_type? Pourquoi ne pas en C++, il suffit d'utiliser l'int?

Il y a des réponses à cette question http://stackoverflow.com/q/131803/72178.
En C++11, vous pouvez dire auto vector_size = myVector.size(); et de s'inquiéter un peu moins 😉
Ce n'est pas bon si vous êtes l'initialisation vector_size à 0 mais vous avez l'intention de l'utiliser comme un vector<double>::size_type.
Je ne comprends pas votre opposition. Si myVector est de type std::vector<double>, et que vous écrivez auto vector_size = myVector.size(); puis vector_size est de type std::vector<double>::size_type, peu importe si le vecteur est vide ou pas. Veuillez préciser.
Si vous avez for(std::vector<double>::size_type i=0; i<myVector.size(); i++) puis l'auto ne peut pas être utilisé pour déclarer i.

OriginalL'auteur | 2011-10-03