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

【c++STL算数仿函数,关系仿函数,逻辑仿函数】

文章目录

      • C++ STL中的算数、关系和逻辑仿函数
      • 1. 算数仿函数
      • 2. 关系仿函数
      • 3. 逻辑仿函数

C++ STL中的算数、关系和逻辑仿函数

STL(Standard Template Library)是C++标准库的一部分,提供了许多强大的工具和功能,其中包括仿函数(function object)。仿函数是一种类或结构体,类似函数指针,可被用于执行函数调用。在STL中,有三种重要的仿函数类型:算数、关系和逻辑仿函数。

1. 算数仿函数

算数仿函数用于执行基本的数学运算,如加法、减法、乘法和除法。STL提供了几个算数仿函数,包括 plusminusmultipliesdivides

实战示例:

#include <iostream>
#include <functional>int main() {std::plus<int> add;std::minus<int> subtract;std::multiplies<int> multiply;std::divides<int> divide;int a = 10, b = 5;// 使用算数仿函数执行运算std::cout << "Addition: " << add(a, b) << std::endl;std::cout << "Subtraction: " << subtract(a, b) << std::endl;std::cout << "Multiplication: " << multiply(a, b) << std::endl;std::cout << "Division: " << divide(a, b) << std::endl;return 0;
}

2. 关系仿函数

关系仿函数用于比较两个值的关系,返回布尔值,如 greaterlessequal_to 等。这些仿函数可以用于容器的排序和查找算法。

实战示例:

#include <iostream>
#include <functional>int main() {std::greater<int> greater_than;std::less<int> less_than;std::equal_to<int> equal;int x = 10, y = 5;// 使用关系仿函数比较值的关系std::cout << "x > y: " << greater_than(x, y) << std::endl;std::cout << "x < y: " << less_than(x, y) << std::endl;std::cout << "x == y: " << equal(x, y) << std::endl;return 0;
}

3. 逻辑仿函数

逻辑仿函数执行逻辑运算,比如逻辑与、逻辑或和逻辑非。STL中提供了 logical_andlogical_orlogical_not 等仿函数。

实战示例:

#include <iostream>
#include <functional>int main() {std::logical_and<bool> logic_and;std::logical_or<bool> logic_or;std::logical_not<bool> logic_not;bool p = true, q = false;// 使用逻辑仿函数执行逻辑运算std::cout << "p && q: " << logic_and(p, q) << std::endl;std::cout << "p || q: " << logic_or(p, q) << std::endl;std::cout << "!p: " << logic_not(p) << std::endl;return 0;
}
http://www.lryc.cn/news/232996.html

相关文章:

  • 产品经理的能力模型是什么?
  • 缓存和DB一致性
  • netty websockt之断连重试
  • 【Gateway】基于ruoyi-cloud-plus项目,gateway局部过滤器和过滤返回以及集成nacos
  • mysql -mmm
  • C++初阶 类和对象(下)
  • 使用Postman进行压力测试
  • AI视频检索丨历史视频标签化,助力重要事件高效溯源
  • 【前段基础入门之】=>CSS3新特性 响应式布局
  • 【Java 进阶篇】JQuery 遍历:发现元素的魔法之旅
  • 合肥数字孪生赋能工业制造,加速推进制造业数字化转型
  • Linux发展史与环境安装
  • 【uniapp】 video视频层级、遮挡其他弹窗或顶部导航 使用nvue覆盖
  • opencv(1):创建和显示窗口, 读取保存图片
  • LeetCode530. Minimum Absolute Difference in BST
  • Flink(五)【DataStream 转换算子(上)】
  • 【vitis】 AIE basic
  • 微信抽奖活动怎么做
  • 装机必备!这5款免费软件,你值得拥有!
  • 华为eNSP综合实验考试
  • OPPO Watch纯手机开启远程ADB调试
  • idea查看UML类图
  • 2736. 最大和查询 : 从一维限制到二维限制,逐步思考剖析本题(进阶一问)
  • 2023数维杯国际数学建模A题B题C题D题思路+模型+代码+完整论文
  • java多个jar包编译生成.class文件
  • 小米手环8pro重新和手机配对解决办法
  • element-china-area-data插件vue3做省市区的下拉选择,用3个独立的el-select实现
  • 盘点十大免费低/无代码开发软件,数字化转型看这里
  • 【word密码】word设置只读方式的四个方法
  • 正整数的阶乘