STL中自定义比较函数和重载运算符总结。部分内容转载自Ohazyi Zone’s blog
sort
自定义比较函数
1 | //示例 |
注:自定义比较函数的形式同样也适用于pair类型数据排序。
重载运算符<
1 | //示例 |
注:由于sort默认less(升序),所以重载’<’运算符。重载运算符的操作不能用于pair类型数据的排序,只能作用于结构体或类对象。
priority_queue
重载运算符< (运算符重载函数放到结构体外)
1 | struct node{ |
注:同样重载运算符的操作不能用于pair类型数据的排序,只能作用于结构体或类对象。
重载运算符< (运算符重载函数放到结构体内)
1 | struct node{ |
注:同上。
自定义比较函数
1 | struct node{ |
注:同样适用于pair类型数据排序。
其它
1 | set<int, greater<int> > st; //按照从大到小,默认是less<int> |
注:set、map的自定义比较函数和重载运算符与优先队列priority_queue类似。