AdvC++ - zadanie 2 students filtrowanie
This commit is contained in:
parent
1295a11932
commit
05f5e5df3d
1 changed files with 8 additions and 3 deletions
|
|
@ -15,7 +15,10 @@ struct Student {
|
||||||
};
|
};
|
||||||
|
|
||||||
std::vector<Student*> filterStudents(const std::vector<std::unique_ptr<Student>>& students, double minAverage) {
|
std::vector<Student*> filterStudents(const std::vector<std::unique_ptr<Student>>& students, double minAverage) {
|
||||||
// Implement method here
|
std::vector<Student*> ptr;
|
||||||
|
rn::transform(students, std::back_inserter(ptr), [](const std::unique_ptr<Student> &s){return s.get();});
|
||||||
|
std::erase_if(ptr, [minAverage](Student* s){return s->average_ < minAverage;});
|
||||||
|
return ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
|
|
@ -30,5 +33,7 @@ int main() {
|
||||||
students.push_back(std::make_unique<Student>(811111, "Mike", 4.45));
|
students.push_back(std::make_unique<Student>(811111, "Mike", 4.45));
|
||||||
|
|
||||||
const auto res = filterStudents(students, 4.45);
|
const auto res = filterStudents(students, 4.45);
|
||||||
// Print result here using ranges (do not create friend operator<<)
|
for(const auto& [ind, nam, av] : res | std::views::transform([](Student *ptr){return *ptr;})){
|
||||||
}
|
printf("%d %s %f\n", ind, nam.c_str(), av);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue