当前位置: 首页 > article >正文

C++学习之函数对象与适配器、STL常用算法

一.函数对象与适配器

1.函数对象基本概念

2.一元谓词

3.二元谓词

4.算术仿函数

5.关系仿函数

6.逻辑仿函数

7.函数适配器

8.取反适配器

9.函数指针适配器

10.成员函数适配器

二.STL常用算法

1.常用遍历算法_01_for_each

//#define _CRT_SECURE_NO_WARNINGS
//#include<iostream>
//using namespace std;
//#include <vector>
//#include <algorithm>
//#include <functional>
//
//void myPrint(int val)
//{
//    cout << val << endl;
//}
//class MyPrint
//{
//public:
//    void operator()(int val)
//    {
//        cout << val << endl;
//    }
//};
//
1、遍历容器
//void test01()
//{
//    vector<int>v;
//    for (int i = 0; i < 10; i++)
//    {
//        v.push_back(i);
//    }
//    //for_each(v.begin(), v.end(), myPrint);
//    for_each(v.begin(), v.end(), MyPrint());
//}
//
2、for_each有返回值,返回第三个参数的拷贝
//class MyPrint2
//{
//public:
//    void operator()(int val)
//    {
//        cout << val << endl;
//        m_Count++;
//    }
//    int m_Count = 0;
//};
//void test02()
//{
//    vector<int>v;
//    for (int i = 0; i < 10; i++)
//    {
//        v.push_back(i);
//    }
//
//    MyPrint2 mp = for_each(v.begin(), v.end(), MyPrint2());
//    cout << "count = " << mp.m_Count << endl;
//}
//
3、for_each算法可以绑定参数
//class MyPrint3 : public binary_function<int,int,void>
//{
//public:
//    void operator()(int val , int start) const
//    {
//        cout << val + start << endl;
//    }
//};
//
//void test03()
//{
//    vector<int>v;
//    for (int i = 0; i < 10; i++)
//    {
//        v.push_back(i);
//    }
//    for_each(v.begin(), v.end(), bind2nd( MyPrint3() ,1000 ));
//
//}
//
//int main()
//{
//    test03();
//
//
//    system("pause");
//    return 0;
//}

2.常用遍历算法_02_for_transform

3.常用查找算法_01_find

4.常用查找算法_02_find_if

5.常用查找算法_03_adjacent_find

6.常用查找算法_04_binary_search

7.常用查找算法_05_count

8.常用查找算法_06_count_if

9.常用排序算法_01_sort

10.常用排序算法_02_randow_shuffle

11.常用排序算法_03_merge

12.常用排序算法_04_reverse

13.常用拷贝和替换算法_01_copy

14.常用拷贝和替换算法_02_replace

15.常用拷贝和替换算法_03_replace_if

16.常用拷贝和替换算法_04_swap

17.常用算术生成算法_01_accumulate

18.常用算术生成算法_02_fill

19.常用集合算法_01_set_intersectiton

20.常用集合算法_02_set_union

21.常用集合算法_03_set_difference

22.演讲比赛流程管理系统_01_系统需求简介

23.演讲比赛流程管理系统_02_创建项目及管理类

24.演讲比赛流程管理系统_03_菜单功能和退出功能实现

25.演讲比赛流程管理系统_04_创建选手类

26.演讲比赛流程管理系统_05_比赛流程搭建及抽签功能实现

27.演讲比赛流程管理系统_06_比赛功能实现

28.演讲比赛流程管理系统_07_显示分数及第二轮比赛实现

29.演讲比赛流程管理系统_08_保存分数

30.演讲比赛流程管理系统_09_读取记录

31.演讲比赛流程管理系统_10_查看往届记录

32.演讲比赛流程管理系统_11_优化项目

33.演讲比赛流程管理系统_12_清空记录


http://www.kler.cn/a/576969.html

相关文章:

  • 编程考古-Borland历史:《.EXE Interview》对Anders Hejlsberg关于Delphi的采访内容(中)
  • docker 若依plus cloud 部署 oss配置失败
  • 前端项目中export和import的作用
  • 【JVM】字节码指令集
  • 正向代理与反向代理
  • 【玩转23种Java设计模式】结构型模式篇:组合模式
  • Python开发Scikit-learn面试题及参考答案
  • PyTorch深度学习框架60天进阶学习计划第15天:迁移学习实践
  • 【2025】基于Python+Django的酒店民宿预订管理系统(源码+调试+答疑+学习资料)
  • 基于SpringBoot的商城管理系统(源码+部署教程)
  • 使用 Yarn 安装依赖的完整指南
  • linux 基本命令教程,巡查脚本,kali镜像
  • 关于C++数据类型char的类型是整数的思考
  • 从多智能体变成一个具有通过场景生成多个决策路径 并在实施的过程中优化决策路径 openmanus 致敬开源精神中的每一个孤勇者
  • HeapDumpBeforeFullGC和HeapDumpOnOutOfMemoryError区别
  • 【机器学习中的“模型穿越”问题:定义、解决方法】
  • 《探秘课程蒸馏体系“三阶训练法”:解锁知识层级递进式迁移的密码》
  • Vue3技术实践:基于XLSX与File-Saver的Excel高效导出方案
  • 《Linux C 智能 IO 矩阵:输入输出的自适应数据流转》
  • sdp与传统网络安全防护的区别 sdn 网络安全