码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • C++ set/multiset 容器(关联式容器)


    1. 基本概念

     包含头文件:#include     //set和multiset一样

     自动排序!

    P.S. 对于自定义的数据类型,要指定排序规则(使用仿函数)

    2. 构造函数

     

    3. 大小和交换

    set不能resize。

     4. 插入和删除

     无法在指定位置插入数据,因为set会默认进行排序。

    5. 查找和统计

    6. set和multiset 区别

     

    7. pair对组创建

     

    1. pairint> p1 = make_pair("Jerry", 20);
    2. pairint> p2("Jerry", 20);
    3. cout << "name: " << p1.first << " age: " << p1.second << endl;

    8. set容器排序

    利用仿函数修改set的排序规则。

    仿函数(Functor)又称为函数对象(Function Object)是一个能行使函数功能的类。

    仿函数是定义了一个含有operator()成员函数的类,可以视为一个一般的函数,只不过这个函数功能是在一个类中的运算符operator()中实现,是一个函数对象,它将函数作为参数传递的方式来使用。调用仿函数,实际上就是通过类对象调用重载后的 operator() 运算符。

    仿函数的优缺点:

    优点:
    1)仿函数比函数指针的执行速度快,函数指针时通过地址调用,而仿函数是对运算符operator进行自定义来提高调用的效率。
    2)仿函数比一般函数灵活,可以同时拥有两个不同的状态实体,一般函数不具备此种功能。
    3)仿函数可以作为模板参数使用,因为每个仿函数都拥有自己的类型。
    缺点:
    1)需要单独实现一个类。
    2)定义形式比较复杂。


    仿函数的作用:
    1)作为排序规则,在一些特殊情况下排序是不能直接使用运算符<或者>时,可以使用仿函数。
    2)作为判别式使用,即返回值为bool类型。
    3)同时拥有多种内部状态,比如返回一个值得同时并累加。
    4)作为算法for_each的返回值使用

    示例:仿函数用作排序规则

    1. class KCompare //仿函数指定排序规则
    2. {
    3. public:
    4. bool operator()(int v1, int v2) //重载()运算符
    5. {
    6. return v1 > v2;
    7. }
    8. };
    9. void test05()
    10. {
    11. set<int, KCompare> s1;
    12. s1.insert(10);
    13. s1.insert(70);
    14. s1.insert(50);
    15. s1.insert(20);
    16. s1.insert(30);
    17. s1.insert(200);
    18. for (set<int, KCompare>:: iterator it = s1.begin(); it != s1.end(); it++)
    19. {
    20. cout << *it << " ";
    21. }
    22. cout << endl;
    23. }

  • 相关阅读:
    chatgpt技术总结(包括transformer,注意力机制,迁移学习,Ray,TensorFlow,Pytorch)
    【7】C语言进阶--程序的编译(预处理操作)+链接
    计算机网络 3 - 传输层
    2023年湘潭大学OJ作业1 XTU OJ 1063,1064,1065,1066,1067 2023年下学期《C语言》作业0x00-输入输出
    PyQt5+Qt设计师初探
    【Kingbase FlySync】命令模式:安装部署同步软件,实现KES到KES实现同步
    win | wireshark | 在win上跑lua脚本 解析数据包
    乐趣国学—品读“富润屋,德润身。”中的智慧
    并发编程中的原子性,可见性,有序性问题
    pytorch迁移学习载入部分权重
  • 原文地址:https://blog.csdn.net/MWooooo/article/details/126706159
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号