SET的性质、特点
set是一个集合,且集合内的元素有序,除此之外,集合中不允许有重复的元素(multiset中的元素可以重复)。set中的元素不可以直接修改。那么,如果要修改集合中的元素,应该如何操作?答:先删除,再插入新的元素,效果等同于修改了旧的元素
greater比较器与less比较器
set中的元素之所以默认从小到大排序,是因为其默认使用的是less比较器。在编写代码时重载比较器,就可以使set中的元素默认为从大到小排序。需要注意的是,如果将默认的less比较器修改为了greater比较器,在编写打印函数时也需要重载比较器。参考代码如下:
#include <iostream>
#include <set>
using namespace std;
void print1(set<int> s)
{
set<int>::iterator it;
for (it = s.begin();it != s.end();it ++) cout << *it << " ";
cout << endl;
}
void print2(set<int,greater<int> > s)
{
set<int>::iterator it;
for (it = s.begin();it != s.end();it ++) cout << *it << " ";
cout <<</

本文详细介绍了C++标准库中的集合类型set,包括其特性、元素排序规则以及如何修改元素。通过示例展示了set的插入、查找和删除操作,并解释了如何自定义比较器以实现降序排序。此外,还展示了如何在集合中存储结构体并根据结构体成员进行排序。最后,给出了一个利用集合存储学生结构体,按照成绩和学号降序排列的例子。

236

被折叠的 条评论
为什么被折叠?



