STL 模板库-set

本文介绍了STL中的set和multiset容器,它们在插入数据时会自动排序。set不允许重复元素,而multiset允许。文章通过示例展示了如何改变排序规则以及如何在set中存储自定义数据类型。同时,还演示了如何使用pair对组进行操作。
摘要由CSDN通过智能技术生成

STL 模板库-set


前言

使用set需要加上头文件#include<set>
使用multiset需要加上头文件#include<multiset>


一、set是什么?

set 插入数据时自动排序(不能插入重复数字)multiset 插入数据时自动排序(能插入重复数字)

二、使用步骤

1.改变排序规则

#include<iostream>
#include<set>
using namespace std;
class mper {
public:
    bool operator()(int a,int b) {//仿函数
        return a > b;
    }
};
void text() {
    set<int, mper>s;
    s.insert(90);
    s.insert(1000);
    s.insert(40);
    s.insert(990);
    for (set<int, mper>::iterator it = s.begin(); it != s.end(); it++)
        cout << *it << " ";
}
int main() {
    text();
}

set装入自定义数据类型 要提前指定排序规则

#include<iostream>
#include<set>
#include<string>
using namespace std;
class person {
public:
    string name;
    int age;
    person(string name, int age) {
        this->name = name;
        this->age = age;
    }
};
class com {
public:
    bool operator()(person a, person b) {
        return a.age > b.age;
    }
};
int main() {
    person p("小明", 20);
    person p1("小l", 29);
    person p2("小f", 22);
    person p3("小h", 21);
    set<person,com >s;
    s.insert(p);
    s.insert(p1);
    s.insert(p2);
    s.insert(p3);
    for (set<person,com>::iterator it = s.begin(); it != s.end(); it++)
        cout << it->name << endl;
}

2.对组

#include<iostream>
using namespace std;
int main() {
    pair<int, char>p(20, 'k');
    cout << p.second << " " << p.first<<endl;
}```
















# 总结
球球了,好累啊
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码有点萌

谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值