【C++】STL-函数对象-内建函数对象

news/2025/3/14 18:17:51/

0.前言

在这里插入图片描述

1.算术仿函数

在这里插入图片描述

#include <iostream>
using namespace std;// STL-内建函数对象-算术仿函数
#include<functional>  // 内建函数对象头文件//以下举例两个仿函数 -- negate and plus// negate 一元仿函数 取反仿函数
void test01()
{negate<int>n;cout << n(40) << endl;
}// plus 二元仿函数 加法
void test02()
{plus<int>p;cout << p(40, 10) << endl;
}int main()
{test01();cout << "------------------------" << endl;test02();//cout << "------------------------" << endl << endl;//test03();//**************************************system("pause");return 0;
} 

在这里插入图片描述

2.关系仿函数

在这里插入图片描述
在这里插入图片描述

#include <iostream>
using namespace std;// STL-内建函数对象-关系仿函数
//举例  -- 大于 greater
#include<vector>
#include<algorithm>
#include<functional>class MyCompare
{
public:bool operator()(int val1, int val2){return val1 > val2;}
};void test01()
{vector<int>v;v.push_back(10);v.push_back(40);v.push_back(20);v.push_back(30);v.push_back(50);for (vector<int>::iterator it = v.begin(); it != v.end(); it++){cout << *it << " ";}cout << endl;//降序// sort(v.begin(), v.end(), MyCompare());//greater<int>() 内建函数对象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();cout << "------------------------" << endl;//test02();//cout << "------------------------" << endl << endl;//test03();//**************************************system("pause");return 0;
} 

在这里插入图片描述

3.逻辑仿函数

在这里插入图片描述
在这里插入图片描述

#include <iostream>
using namespace std;// STL-内建函数对象-逻辑仿函数
//举例  -- 逻辑非 logical_not
#include<vector>
#include<algorithm>
#include<functional>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();cout << "------------------------" << endl;//test02();//cout << "------------------------" << endl << endl;//test03();//**************************************system("pause");return 0;
} 

在这里插入图片描述


http://www.ppmy.cn/news/1106424.html

相关文章

【论文笔记】Baidu Apollo EM Motion Planner

文章目录 AbstractI. INTRODUCTIONA. Multilane StrategyB. Path-Speed Iterative AlgorithmC. Decisions and Traffic Regulations II. EM PLANNER FRAMEWORK WITH MULTILANE STRATEGYIII. EM PLANNER AT LANE LEVELA. SL and ST Mapping (E-step)B. M-Step DP PathC. M-Step …

Leetcode148. 排序链表

力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 给你链表的头结点 head &#xff0c;请将其按 升序 排列并返回 排序后的链表 题解&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 class Solution {public Li…

常见的拖拽效果,以及最新的h5拖拽效果及其原理解析

首先是使用h5的api实现拖拽排序效果 需要实现的效果 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title&…

手工测试项目实战

功能测试实战 项目介绍及说明 项目部署 开发语言 web服务器 asp IIS php apache java comcat 将其放在网站上&#xff0c;映射地址 查看文件中是否有相对路径…/文件表示方式&#xff0c;有的话需要启用父路径&#xff0c;并点击应用 项目为32位&#xff0c;但win7虚拟机…

Java注解与python函数修饰器区别是啥

区别 Python的函数修饰器&#xff08;Decorators&#xff09;和Java的注解&#xff08;Annotations&#xff09;都是两种用于修改或增强代码功能的工具&#xff0c;但它们的用法和功能上有一些显著的区别。 语法和功能&#xff1a;Python的修饰器是一种函数&#xff0c;它可以…

哪些因素影响App Store上的应用排名

高的转化率会对应用排名产生积极影响。这在很大程度上取决于&#xff0c;在应用元数据的基础上优化应用程序的视觉资产&#xff1a;图标&#xff0c;屏幕截图和视频&#xff0c;这能够有效地传达应用程序的价值并且吸引目标受众。 1、在应用元数据中包含相关关键词。 提高应用…

荐片怕不是写病-毒出身的吧?

事情的经过是这样的&#xff0c;我发现我的电脑上一直有Jp_Update.exe在运行&#xff0c;之前安装过荐片客户端。既然运行了肯定有出处嘛&#xff0c;那就找呗 首先排查启动项、服务、计划任务这3块常规启动&#xff0c;发现并没有&#xff08;安装完就禁用了服务)。 后面想着…

Android逆向——脱壳解析

“壳”是一种对程序进行加密的程序&#xff0c;“壳”形象地表现了这个功能。我们可以把被加壳的程序当成食物&#xff0c;而加壳程序就是在外面加上一层坚硬的外壳&#xff0c;防止别人去窃取其中的程序。加壳后的程序依然可以被直接运行。在程序运行时壳的代码先运行&#xf…