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

STL学习(?函数对象,谓词,内建函数对象)

目录

一、函数对象

1.函数对象的概念

2.函数对象的使用

(1)函数对象在使用的时候,可以像普通函数那样调用,可以有参数,也可以有返回值。

(2)函数对象超出普通函数的概念,函数对象由于是类,可以有自己的状态

(3)函数对象可以作为参数传递

二、谓词

1.一元谓词

2.二元谓词

三、内建函数对象

1.算数仿函数

2.关系仿函数

3.逻辑仿函数


一、函数对象

1.函数对象的概念

重载函数调用运算符的类,也叫仿函数,本质是类而不是函数

2.函数对象的使用

(1)函数对象在使用的时候,可以像普通函数那样调用,可以有参数,也可以有返回值。

(2)函数对象超出普通函数的概念,函数对象由于是类,可以有自己的状态

(3)函数对象可以作为参数传递

既然他可以作为参数传递,所以很多STL的算法都有这个作为参数。

二、谓词

对于仿函数,返回值类型是bool数据类型,称为谓词。

1.一元谓词

如果operator()接收一个参数,那么叫做一元谓词。所以说函数对象都是和算法一起使用的。

2.二元谓词

如果operator()接收二个参数,那么叫做二元谓词

三、内建函数对象

就是有很多函数对象常用,所以STL都给封装好了,不需要自己写了。需要引入头文件#include<functional>。

1.算数仿函数

函数原型

template<<class T> T plus<T>   // 加法仿函数

template<<class T> T minus<T>   // 减法仿函数

template<<class T> T multiplies<T>   // 乘法仿函数

template<<class T> T divides<T>   // 除法仿函数

template<<class T> T modules<T>   // 取模仿函数

template<<class T> T negate<T>   // 取相反数仿函数

2.关系仿函数

template<<class T> bool equal_to<T>            //等于

template<<class T> bool not_equal_to<T>            //不等于

template<<class T> bool greater<T>            //不等于

template<<class T> bool greate_equal<T>            //不等于

template<<class T> bool less<T>            //不等于

template<<class T> bool less_equal<T>            //不等于

这里排序使用的仿函数就是STL自带的了,而不是自己写的了。

3.逻辑仿函数

template<<class T> bool logical_and<T>      // 逻辑与

template<<class T> bool logical_or<T>      // 逻辑或

template<<class T> bool logical_not<T>      // 逻辑非

 

http://www.lryc.cn/news/597529.html

相关文章:

  • Hexo - 免费搭建个人博客05 - 更新个人博客
  • DAY 22 复习日
  • 【提示词技巧】高级提示方法与框架
  • 第七章 Pytorch构建模型详解【构建CIFAR10模型结构】
  • 【WRF】根据自动安装脚本安装 WRF / WRF-CHEM等
  • Google Chrome V8< 14.0.221 类型混淆漏洞
  • linux中如何清除history命令
  • IAR Embedded Workbench for ARM 8.1 安装教程
  • 有没有能读懂PDF里手写批注的工具?
  • C# 值类型与引用类型的储存方式_堆栈_
  • 基于Kafka实现简单的延时队列
  • 【JVM】从 JVM 整体说明 JVM 运行的完整流程
  • C#与WPF使用mvvm简单案例点击按钮触发弹窗
  • 基于阿里云平台的文章评价模型训练与应用全流程指南
  • nginx.conf配置文件以及指令详解
  • 人工智慧是引擎,人类是方向盘:Vitalik对AI未来的深刻反思
  • 关于SPring基础和Vue的学习
  • rust嵌入式开发零基础入门教程(六)
  • 什么是MySQL 视图
  • 综合实验(3)
  • 暑期自学嵌入式——Day06(C语言阶段)
  • 7月23日星期三今日早报简报微语报早读
  • 51c大模型~合集158
  • Vue 3 组件通信全解析:从 Props 到 Pinia 的深入实践
  • 用 llama.cpp 构建高性能本地 AI 应用:从环境搭建到多工具智能体开发全流程实战
  • Python应用指南:构建和获取全球地铁线路数据及可视化
  • ToBToC的定义与区别
  • 从 XSS 到 Bot 攻击:常见网络攻击防不胜防?雷池 WAF 用全场景防护为网站筑牢安全墙
  • Java中IO多路复用技术详解
  • S段和G段到底有什么区别