(C++)Set集合,比较函数

Set的默认将里面的元素从小到大排序。

如果想从大到小,需要用到greater<typename>

如果Set里的元素是string类型的,则是按字典序排序的。

比如:下面这段代码是按字典序从大到小排列的。

#include<stdio.h>
#include<stdlib.h>
#include<unordered_map>
#include<iostream>
#include<string>
#include<assert.h>
#include<set>
int main() {
    string MainWord = "abppplee";
    set<string, greater<string>> WordPool;
    WordPool.insert("able");
    WordPool.insert("ale");
    WordPool.insert("apple");
    WordPool.insert("bale");
    WordPool.insert("kangaroo");
    //cout << find(MainWord, WordPool) << endl;
    set<string, greater<int>>::iterator it;
    for (it = WordPool.begin(); it != WordPool.end(); it++)
        cout << (*it) << endl;
    return 0;
}

(C++)Set集合,比较函数

也可以自己写个结构体来重载比较函数:

#include<stdlib.h>
#include<unordered_map>
#include<iostream>
#include<string>
#include<assert.h>
#include<set>
struct length_more {
    bool operator()(const string& s1, const string& s2) {
        return s1.size() > s2.size();
    }
};
int main() {
    string MainWord = "abppplee";
    set<string, length_more> WordPool;
    WordPool.insert("able");
    WordPool.insert("ale");
    WordPool.insert("apple");
    WordPool.insert("bale");
    WordPool.insert("kangaroo");
    //cout << find(MainWord, WordPool) << endl;
    set<string>::iterator it;
    for (it = WordPool.begin(); it != WordPool.end(); it++)
        cout << (*it) << endl;
    return 0;
}

 

原文链接: https://www.cnblogs.com/Bella2017/p/11153415.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    (C++)Set集合,比较函数

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/298417

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月15日 下午7:46
下一篇 2023年2月15日 下午7:46

相关推荐