C++ STL介绍(含struct类重载运算符方法)

最近在整理原来的一些资料,偶然想起原来搞OI时讲过一次STL和struct类重载运算符的内容,这里分享给大家

目录

algorithm

sort语句及struct类重载运算符

1、通过比较函数cmp实现

2、Struct类中重载运算符

二分查找

去除重复元素、离散化

queue

优先队列(堆)

map

set、迭代器

bitset

总结

题目推荐


标准模板库(Standard Template Library),惠普实验室开发的一系列软件的统称

在C++标准中,STL被组织为下面头文件:<algorithm>、<deque>、<functional>、<iterator>、<array>、<vector>、<list>、<forward_list>、<map>、<memory>、<numeric>、<queue>、<set>、<stack><utility>

调用STL是需要加特定的头文件的

 

algorithm

sort语句及struct类重载运算符

给定数列Ai,每个数有两个属性值Qi,Wi,按照Qi从小到大排序,若Qi相同,则按Wi从大到小排序

Sort(a+1,a+1+N)表示将a数组的第1位到第N位从小到大排序

如果需要按照其他标准排序呢?

两种实现方法:比较函数cmp实现、Struct类中重载运算符

 

1、通过比较函数cmp实现

由于STL中默认比较方式为两已有数据类型从小到大排序,即‘<’比较方式,即以下两种对A序列的从小到大排序方式等同。注意两部分sort语句的区别

方式1:

方式2:

我们可以发现:cmp函数为bool类型,那么如果返回true,相当于不交换位置,即当前两元素的位置顺序满足最终目的

 

前述问题的参考程序如下:

这里有个小细节:新建一个struct类数组时,有如下两种实现方式

2、Struct类中重载运算符

前面说过,默认比较方式按‘<’来执行,因此我们重载的运算符为‘<’,有如下两种方式

方式1:

方式2:

  • 0
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值