丑数&&priority_queue&&mp.find()知识点

知识点1:优先队列

优先队列即PriorityQueue,是一种内置的机遇堆排序的容器,分为大顶堆与小顶堆,大顶堆的堆顶为最大元素,其余更小的元素在堆下方,小顶堆与其刚好相反。每次取出堆顶元素都是直接取出。

让我们解释一下 priority_queue<long, vector<long>, greater<long>> pq; 这段代码的含义:

priority_queue 是一个模板类,需要指定存储的元素类型、底层容器类型和比较函数类型。

在这里,priority_queue 存储的元素类型是 long,因为它是用来存储丑数(Ugly Number),防止溢出。

底层容器类型是 vector<long>,即使用 vector 来存储 priority_queue 的元素。

比较函数类型是 greater<long>,这里的 greater 是一个函数对象,用来定义元素的比较方式。在这个代码中,greater<long> 表示使用 long 类型的大于运算符 > 来进行元素的比较,greater<long> 会确保较小的元素在堆顶,从而实现小顶堆的效果。

因此,priority_queue<long, vector<long>, greater<long>> pq; 创建了一个 long 类型的小顶堆,可以保证从 pq 中取出的元素是最小的。

知识点2:map.find()

mp.find(next):这是用来查找键为 next 的元素是否在 mp 中存在。
find() 函数返回一个迭代器,如果找到了对应的键,迭代器指向该元素;如果没有找到,则返回 mp.end()。

mp.end():表示 mp 的迭代器的末尾指针,意味着查找未成功。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值