Глава 18. Классы-контейнеры 471
#define RWSTD_NO_NAMESPACE ftinclude <cstring.h> ^include <iostream.h> ftinclude <algorith.h>
#include <vector.h> ftinclude <student3.h>
string LetterGradefSTUDENT &s, float f) { '
string result = s.Getldt);
result += " has an ";
// Изменить рейтинг студентов. s.SetGrade(s.GetGrade()+f);
if (s.GetGradeO < 1.0)
result += "F.\n";
else if (s.GetGradeO < 2.0)
result += "D.\n";
else if (s.GetGradeO < 3.0)
result += "C.\n";
else if (s.GetGradeO < 3.5)
result += "B.\n";
else
result += "A. Good job!\n";
return result;
}
int main()
{
vector<STUDENT> studentVector;
studentVector.push_back(STUDENT("John Smith", 1.0));
studentVector.push_back(STUDENT("Donald Brown", 2.4));
studentVector.push_back(STUDENT("Connie Enid", 3.3));
student Vector.push_back(STUDENT("Alex Peterson", 0.5)), float gradeChange[4] = { 0.5, 0.2, 0.2, 1.0 };
transform(studentVector.begin(), studentVector.end(), gradeChange, ostream iterator<string>(cout, "\n"), LetterGrade) ;
return 0;
Как видно из листинга 18.20, определить собственный объект-функцию несложно. STL предлагает несколько полезных объектов-функций'. Они разделяются на три категории:
• Арифметические
• Сравнения
• Логические