El uso de plantillas STL para escribir programas que administren las calificaciones de los cursos orientados a objetos de los estudiantes en una clase requiere la capacidad de implementar las siguientes funciones:
#include
#include
#include
#include #include #include clase Estudiante { público: p> Estudiante(int id,int puntuación) :m_id(id) ,m_score(puntuación) { } operador bool <(const Student& other) { return m_score } p> operador bool ==(const Estudiante& otro) { return m_id==other.m_id; } int m_id,m_score; }; std::ostream& operador<<(std::ostream& o,const Student& s) { o<<"id: "< return o; } p> int main(int argc, char *argv[]) { std::cout<<"a [id] [puntuación] para agregar\n " "d [id] para eliminar\n" "f [id] para encontrar\n" "s para ordenar\n" "p para imprimir\n" "q para salir\n"< estado del carácter; int id=0,score=0; std::vector bool done=false,errorFlag=false; hacer { std::cin>>status; switch(status){ case 'q': done=true ; descanso; caso 'a': std::cin>>id>>puntuación; estudiantes.push_back (Estudiante(id,puntuación)); std::cout< ed."; break; case 'd': { std::cin>>id; p> p> Estudiante s(id,-1); std::vector if(itr!=students.end()){ estudiantes.erase(itr); std::cout< } else std::cout<<"estudiante ["< } descanso; caso 'f': { std :: cin>>id; Estudiante s(id,-1); std::vector if(itr==estudiantes.end()) std::cout<<"estudiante ["< else std::cout<<*itr<<" encontrado."; } p> descanso; caso 's': std::sort(students.begin(),students.end()); std ::cout<<"sort end!"; break; case 'p': std::copy(students.begin( ), estudiantes.end(),std::ostream_iterator std::cout<<"print end!"; break; predeterminado: errorFlag=true; } if(errorFlag||std::cin .fail ()){ errorFlag=false; std::cin.clear(); std::cin.ignore(std:: numeric_limits< std::streamsize>::max(), '\n'); std::cout<<"error al ingresar."; } std::cout< } while(! hecho); std::cout<<"¡adiós!"< }