【练习吧 · 数据结构】set 集合的遍历

本文详细介绍了C++标准库中set容器的基本操作方法,包括插入、遍历、删除等,并展示了如何自定义排序规则实现结构体类型的存储。

begin():返回set容器的第一个元素的地址

end():返回set容器的最后一个元素地址

clear():删除set容器中的所有的元素

empty():判断set容器是否为空

max_size():返回set容器可能包含的元素最大个数

size():返回当前set容器中的元素个数

erase(it):删除迭代器指针it处元素

insert(a):插入某个元素

#include <iostream>
#include<set>
using namespace std;
int main()
{
    set<int> s;                //创建一个int类型的set

    s.insert(10);                //插入数据
    s.insert(30);
    s.insert(20);
    s.insert(40);                

    //遍历数据,用迭代器遍历数据
    for (set<int>::iterator it = s.begin(); it != s.end(); ++it)    
    {
        cout << *it << endl;
    }
    //这里用到了set中的元素已经从小到大排好序的性质

    return 0;
}

结构体类型(struct )的set ,使用时必须要重载 ‘<’ 运算符

//可以跑一下代码试试
#include<iostream>
#include<set>
#include<string>
using namespace std;
struct Info
{
    string name;
    double score;
    bool operator < (const Info &x) const // 重载“<”操作符,自定义排序规则
    {
        //按score由大到小排序。如果要由小到大排序,使用“>”即可。
        return x.score < score;
    }
};
int main()
{
    set<Info> s;
    Info info;

    //插入三个元素
    info.name = "Jack";
    info.score = 80;
    s.insert(info);
    info.name = "Tom";
    info.score = 99;
    s.insert(info);
    info.name = "Steaven";
    info.score = 60;
    s.insert(info);

    set<Info>::iterator it;
    for(it = s.begin(); it != s.end(); it++)
        cout << (*it).name << " : " << (*it).score << endl;
    return 0;
}

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值