【C++】STL中的运算符重载
在对结构进行排序时我们可以用sort
,自己写一个cmp
排序函数传进sort
,就可以按照自己想要的方式排序了
但是遇到一些特殊的数据结构,它们本身就有一定的排序规则(比如说priority_queue
),但我们想要根据自己制定的规则进行排序,就需要用到 ==运算符重载== 了
下面将以priority_queue
优先队列为例,进行运算符重载
struct cmp |
需要注意的是,当我们使用大根堆时,重载小于号,使用小根堆时,重载大于号(如下)struct cmp
{
int a, b,… // 存储的信息
bool operator> (const cmp &tmp) const
{
return a > tmp.a; // 制定自己的排序规则
}
};
priority_queue<cmp, vector<cmp>, greater<cmp>> heap;
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Texcavator 的秘密基地!
评论