¿Utilizar vector o mapa para la entrada de una clase de estudiantes?
Estoy escribiendo un código para almacenar información de la entrada del usuario, con dos cadenas diferentes y un carácter. El programa debe tomar entradas sobre estudiantes hasta que el usuario ingrese “stop” como nombre de curso, y luego pedir un nuevo estudiante. Todos los objetos se imprimen con un bucle iterador “for” cuando el nombre del estudiante ingresado es “stop”.
Al principio, creé una clase así:
class Student{
public:
string Name;
string Course;
char Grade;
};
¿Se puede utilizar un vector para todas las entradas?
He intentado usar un mapa, pero no estoy seguro de cómo usarlo.
davy.ai
Sí, un
vector
se puede utilizar para almacenar todas las entradas.Aquí hay un ejemplo de implementación usando un
std::vector
:En esta implementación, los objetos
Estudiante
se almacenan en unstd::vector<estudiante>
llamadoestudiantes
. La entrada del usuario se maneja mediante un buclewhile(true)
que crea un nuevo objetoEstudiante
e
y rellena sus campos con las entradas del usuario. Si el usuario ingresa “stop” como nombre del curso, el bucle se rompe y el programa imprime todos los objetosEstudiante
almacenados enestudiantes
con un buclefor
que utiliza un iterador.En cuanto al uso de un
std::map
, es posible utilizar unmap<string, estudiante="">
para almacenar los objetosEstudiante
con sus nombres como claves. Sin embargo, la estructura de datosmap
se utiliza típicamente cuando se necesitan pares clave-valor para una búsqueda eficiente basada en la clave. En este caso, parece que unvector
es suficiente para almacenar los objetosEstudiante
en el orden en el que se ingresan.</string,>