C ++: “vector <int> :: variable size_type”: ¿cuál es el punto de declarar de esta manera?

Creo que esta es una pregunta muy básica, pero no pude resolverlo.

Estaba acostumbrado a usar matrices en C ++ pero ahora estoy empezando a aprender vectores. Estaba haciendo un código de prueba y me encontré con una pregunta.

En primer lugar, aquí está el código que hice:

#include <iostream>
#include <vector>
#include <numeric>
using namespace std;

int main(){
  vector<double> score(10);

  for(vector<double>::size_type i=0;i<20;i++) {
    cout<<"Enter marks for student #"<<i+1<<":"<<flush;
    cin>>score[i];
  }

  double total = accumulate(score.begin(), score.end(),0);

  cout<<"Total score:"<<total<<endl<<"Average score:"<<total/score.size()<<flush;

  return 0;
}

En elfor oración en la línea # 9, estoy declarandoi como unvector<double>::size_type tipo (porque me dijeron que lo hiciera). Probé el código con el tipo mencionado anteriormente reemplazado por unint, y funcionó perfectamente bien. Por que esvector<double>::size_type preferido comparado conint?

Respuestas a la pregunta(4)

Su respuesta a la pregunta