自定义数据类型(例如上述Student),如何使用max_element( )、min_element( )、max( )、min( )等算法?
时间: 2023-08-01 12:07:03 浏览: 204
Adapter实现自定义数据类型student
可以使用STL的<algorithm>头文件中的max_element( )、min_element( )、max( )、min( )等算法处理自定义数据类型。
对于自定义数据类型,我们需要定义比较函数,指定如何比较两个对象的大小。比较函数需要满足以下要求:
- 函数返回值为bool类型;
- 如果第一个参数小于第二个参数,返回true,否则返回false。
以Student为例,假设我们要对一个容器中的Student对象按照成绩进行比较,可以定义一个如下的比较函数:
```
bool cmp(const Student& s1, const Student& s2) {
return s1.score < s2.score;
}
```
然后就可以使用max_element( )、min_element( )、max( )、min( )等算法处理自定义数据类型了。例如,找到容器中成绩最高的学生:
```
vector<Student> students;
// 添加学生数据
...
auto it = max_element(students.begin(), students.end(), cmp);
cout << "最高分:" << it->score << endl;
```
其中,max_element( )会返回一个迭代器,指向容器中与指定比较函数返回值最大的元素。上面的代码中,it指向容器中成绩最高的学生对象。
类似地,可以使用min_element( )、max( )、min( )等算法处理自定义数据类型。需要注意的是,这些算法都需要指定比较函数。
阅读全文