93.STL-系统内置仿函数

这篇具有很好参考价值的文章主要介绍了93.STL-系统内置仿函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

       

目录

 算术仿函数

关系仿函数 

逻辑仿函数 


        C++ 标准库中提供了一些内置的函数对象,也称为仿函数,它们通常位于 <functional> 头文件中。以下是一些常见的系统内置仿函数:

 算术仿函数

功能描述:

  • 实现四则运算
  • 其中negate是一元运算,其他都是二元运算

仿函数原型:

  • 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 modulus<T> //取模仿函数
  • template<class T> T negate<T> //取反仿函数
#include <iostream>
#include <functional>

using namespace std;

int main() {
	plus<int> m;//加法仿函数
	cout << m(10,20) << endl;

	minus<int> m1;//减法仿函数
	cout << m1(20, 10) << endl;

	multiplies<int> m2;//乘法仿函数
	cout << m2(20, 10) << endl;

	divides<int> m3;//除法仿函数
	cout << m3(20, 10) << endl;

	modulus<int> m4;//取模仿函数
	cout << m4(20, 8) << endl;

	negate<int> m5;//取反仿函数
	cout << m5(20) << endl;

	return 0;
}

 93.STL-系统内置仿函数,C++,c++,开发语言

关系仿函数 

功能描述:

  • 实现关系对比

仿函数原型:

  • 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 greater_equal<T> //大于等于
  • template<class T> bool less<T> //小于
  • template<class T> bool less_equal<T> //小于等于
void test01()
{
	vector<int> v;
	v.push_back(10);
	v.push_back(30);
	v.push_back(50);
	v.push_back(40);
	v.push_back(20);
	for (vector<int>::iterator it = v.begin(); it != v.end(); it++) {
		cout << *it << " ";
	}
	cout << endl;
	//自己实现仿函数
	//sort(v.begin(), v.end(), MyCompare());
    //STL内建仿函数 大于仿函数
	sort(v.begin(), v.end(), greater<int>());//大于
	for (vector<int>::iterator it = v.begin(); it != v.end(); it++) {
		cout << *it << " ";
	}
	cout << endl;
}
int main() {
	test01();
	system("pause");
	return 0;
}

 93.STL-系统内置仿函数,C++,c++,开发语言

逻辑仿函数 

功能描述:

  • 实现逻辑运算

函数原型:

  • template<class T> bool logical_and<T> //逻辑与
  • template<class T> bool logical_or<T> //逻辑或
  • template<class T> bool logical_not<T> //逻辑非
void test01()
{
	vector<bool> v;
	v.push_back(true);
	v.push_back(false);
	v.push_back(true);
	v.push_back(false);
	for (vector<bool>::iterator it = v.begin(); it != v.end(); it++)
	{
		cout << *it << " ";
	}
	cout << endl;
	//逻辑非 将v容器搬运到v2中,并执行逻辑非运算
	vector<bool> v2;
	v2.resize(v.size());
	transform(v.begin(), v.end(), v2.begin(), logical_not<bool>());
	for (vector<bool>::iterator it = v2.begin(); it != v2.end(); it++)
	{
		cout << *it << " ";
	}
	cout << endl;
}
int main() {
	test01();
	system("pause");
	return 0;
}

93.STL-系统内置仿函数,C++,c++,开发语言 

 写在最后:以上就是本篇文章的内容了,感谢你的阅读。如果感到有所收获的话可以给博主点一个赞哦。如果文章内容有遗漏或者错误的地方欢迎私信博主或者在评论区指出~  文章来源地址https://www.toymoban.com/news/detail-758292.html

到了这里,关于93.STL-系统内置仿函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Go开发使用bee工具生成beego框架工程代码、运行web项目以及beego中内置模板函数列表

        GO开发中使用bee工具生成beego框架工程代码,在这之前假定你已经成功安装好了Beego环境搭建和bee工具,Windows下Beego环境搭建和bee工具的安装使用_bee命令 windows-CSDN博客 然后在命令行或者在git bash中进入到GOPATH的src目录,执行bee new 工程名称,来生成一个beego框架工程目录:

    2024年04月29日
    浏览(38)
  • php内置函数-文件包含的函数

    目录 1.include 2.require  3.include_once 4. require_once 可以将别的文件直接引用过来(被引用的文件含有打印代码的话,会直接打印),如果失败了,会返回一条警告,文件会继续执行下去,通常用于动态包含。 如下,我建两个 php 文件,一个写有函数声明的文件,一个函数调用的文

    2024年01月15日
    浏览(39)
  • 【python基础语法七】python内置函数和内置模块

    eval 和 exec 在和第三方用户交互时候,谨慎使用; 应用不一样: json主要用于传输 转换关系 localtime = mktime = ctime

    2024年02月01日
    浏览(46)
  • C语言【函数、作用域、常用系统函数】

    一、函数 1、函数的声明 ​自定义函数如果放在main函数之后,需要声明函数才可以访问到。如果未声明,则编译器会自动补一个返回类型未int类型的声明,这样以来,如果自定义函数返回值不为int,会报错。 ​结论:记得加函数声明。 2、函数的传值和传址。 todo 3、函数的

    2024年02月05日
    浏览(34)
  • Hive内置表生成函数

    在Hive中,所有的运算符和用户定义函数,包括用户定义的和内置的,统称为UDF(User-Defined Functions)。如下图所示: UDF官方文档:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF 其中,用户自定义聚合函数和内置聚合函数统称为UDAF(User-Defined Aggregate Functions),用户自定

    2024年02月05日
    浏览(43)
  • 《MySQL》内置函数

    函数名称 功能 current_date() 当前日期(yyyy-mm-dd) current_time() 当前时间(hh-mm-ss) current_timestamp() 当前时间戳(yyyy-mm-dd hh-mm-ss) now() 当前日期时间 date(datetime) 返回datetime参数的日期部分 date_add(date, interval d_value_type) 返回date加上d的日期时间,d可以是天、时、分、秒 date_sub(dat

    2024年02月13日
    浏览(39)
  • 【MySQL】内置函数

    日期函数 获得年月日: 获得时分秒: 获得时间戳: 同时使用 current_date 和 current_time 就相当于 current_timestamp 在日期的基础上加日期: 在日期的基础上减去时间: 计算两个日期之间相差多少天: 获取时间戳中的日期 创建生日表 创建留言表 字符串函数 查看字符串的字符集

    2024年02月15日
    浏览(35)
  • SASS常用内置函数

    引入 : @use \\\"sass:math\\\"; 常用函数: ceil($number) - 向上取整 floor($number) - 向下取整 round($number) - 四舍五入 max($number...) - 比较若干数值并取最大值 min($number...) - 比较若干数值并取最小值 random() - 取0~1之间的随机数 示例 : 引入 : @use \\\"sass:string\\\"; 常用函数: [str-]length($string)

    2024年02月10日
    浏览(56)
  • Hive内置函数字典

    写在前面:HQL同SQL有很多的类似语法,同学熟悉SQL后一般学习起来非常轻松,写一篇文章列举常用函数,方便查找和学习。 1.1 Batch Mode 批处理模式 当使用 -e 或-f选项 运行$ HIVE_HOME / bin / hive时,它将以批处理模式执行SQL命令。所谓的批处理可以理解为 一次性执行,执行完毕

    2024年02月09日
    浏览(44)
  • go 内置函数copy()

    当我们在Go语言中需要将一个切片的内容复制到另一个切片时,可以使用内置的 copy() 函数。 copy() 函数用于将源切片中的元素复制到目标切片中,它有以下形式的签名: 其中, dst 是目标切片, src 是源切片, T 是切片元素的类型。函数返回一个整数值,表示实际复制的元素

    2024年02月14日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包