C++STL数据结构更改排序规则

1、自定义优先队列内部的排序规则priority_queue

auto cmp = [](ListNode* a, ListNode* b){
	return a->val > b->val;  // 降序排序,小顶堆
}
priority_queue<ListNode*, vector<ListNode*>, decltype(cmp)> pq(cmp);

或者重新定义一个结构体(即类)

struct Status{
	int val;
	ListNode* ptr;
	**bool operator < (const Status& rhs) const {
		return val > rhs.val;
	}**
};
priority_queue<Status> q;
q.push(root->val, root);

2、自定义set集合内部的排序规则

struct Node {
    int m_Cnt;
    int m_Time;
    int m_Key;
    int m_Value;
    Node (int cnt, int time, int key, int value) : m_Cnt(cnt), m_Time(time), m_Key(key), m_Value(value){
    }
    **bool operator < (const Node& n) const{
        return m_Cnt == n.m_Cnt ? m_Time < n.m_Time : m_Cnt < n.m_Cnt;
    }**
};
set<Node> vis;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值