Si separaran a los alumnos por calificación ("éstos son los que sacaron 0, éstos son los que sacaron 1, etcétera"), no necesitan structs; bastar con guardar los puros números de lista. Además, se puede usar la misma notación que hemos usado hasta el momento procesar un std::vector con las funciones de : std::vector a = { 3, 1, 4, 1, 6 }; std::sort(&a[0], &a[0] + a.size( )); // ejemplo: ordenar el arreglo dinámico pasando apuntadores de inicio y fin