C++之内建函数对象

C++之内建函数对象

算术仿函数

复制代码
#include<iostream>
using namespace std;
#include<functional>//内建函数对象头文件
//内建函数对象 算术仿函数

void test()
{
	// negate 一元仿函数 取反仿函数
	negate<int>n;
	cout << n(100) << endl;

	//plus 二元仿函数 加法
	plus<int>p;
	cout << p(20, 30) << endl;
}

int main()
{
	test();

	system("pause");
	return 0;
}

关系仿函数

复制代码
#include<iostream>
using namespace std;
#include<vector>
#include<algorithm>
#include<functional>//内建函数对象头文件
//内建函数对象 关系仿函数
//大于greater
class MyCompare
{
public:
	bool operator()(int v1, int v2)
	{
		return v1 > v2;
	}
};
void test()
{
	vector<int>v;
	v.push_back(10);
	v.push_back(50);
	v.push_back(20);
	v.push_back(30);
	v.push_back(40);

	for (vector<int>::iterator it = v.begin();it != v.end();it++)
	{
		cout << *it << " ";
	}
	cout << endl;
	//降序
	//sort(v.begin(), v.end(), MyCompare());
	sort(v.begin(), v.end(), greater<int>());
	for (vector<int>::iterator it = v.begin();it != v.end();it++)
	{
		cout << *it << " ";
	}
	cout << endl;
}

int main()
{
	test();

	system("pause");
	return 0;
}

逻辑仿函数

复制代码
#include<iostream>
using namespace std;
#include<vector>
#include<algorithm>
#include<functional>//内建函数对象头文件
//内建函数对象 逻辑仿函数
//逻辑非logical_not

void test()
{
	vector<int>v;
	v.push_back(true);
	v.push_back(false);
	v.push_back(true);
	v.push_back(false);
	v.push_back(true);

	for (vector<int>::iterator it = v.begin();it != v.end();it++)
	{
		cout << *it << " ";
	}
	cout << endl;

	//利用逻辑非 将容器v 搬运到 容器v2中, 并执行取反操作
	vector<int>v2;
	v2.resize(v.size());

	transform(v.begin(), v.end(), v2.begin(), logical_not<bool>());
	for (vector<int>::iterator it = v2.begin();it != v2.end();it++)
	{
		cout << *it << " ";
	}
	cout << endl;
}

int main()
{
	test();

	system("pause");
	return 0;
}
相关推荐
大白的编程日记.23 分钟前
【计算机基础理论知识】C++篇(二)
开发语言·c++·学习
网小鱼的学习笔记26 分钟前
python中MongoDB操作实践:查询文档、批量插入文档、更新文档、删除文档
开发语言·python·mongodb
C语言小火车29 分钟前
野指针:C/C++内存管理的“幽灵陷阱”与系统化规避策略
c语言·c++·学习·指针
Q_Q51100828536 分钟前
python的保险业务管理与数据分析系统
开发语言·spring boot·python·django·flask·node.js·php
亮11136 分钟前
Maven 编译过程中发生了 Java Heap Space 内存溢出(OutOfMemoryError)
java·开发语言·maven
凤年徐38 分钟前
【数据结构】时间复杂度和空间复杂度
c语言·数据结构·c++·笔记·算法
Chef_Chen40 分钟前
从0开始学习R语言--Day40--Kruskal-Wallis检验
开发语言·学习·r语言
Zhu_S W1 小时前
深入理解Java虚拟机:Java内存区域与内存溢出异常
java·开发语言·jvm
灰海1 小时前
原型与原型链到底是什么?
开发语言·前端·javascript·es6·原型模式·原生js
踏莎行hyx1 小时前
使用langchain连接llama.cpp部署的本地deepseek大模型开发简单的LLM应用
c++·ai·langchain·大模型·llama.cpp·deepseek