STL:内建函数对象记录

Posted studying~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STL:内建函数对象记录相关的知识,希望对你有一定的参考价值。

STL内建了一些函数对象。分为:算数类函数对象,关系运算类函数对象,逻辑运算类仿函 数。这些仿函数所产生的对象,用法和一般函数完全相同,当然我们还可以产生无名的临时 对象来履行函数功能。使用内建函数对象,需要引入头文件 #include < functional >。
6个算数类函数对象,除了negate是一元运算,其他都是二元运算。 template T plus//加法仿函数
template T minus//减法仿函数
template T multiplies//乘法仿函数
template T divides//除法仿函数
template T modulus//取模仿函数
template T negate//取反仿函数**
6个关系运算类函数对象,每一种都是二元运算。
template bool equal_to//等于
template bool not_equal_to//不等于
template bool greater//大于
template bool greater_equal//大于等于
template bool less//小于
template bool less_equal//小于等于
逻辑运算类运算函数,not为一元运算,其余为二元运算。
template bool logical_and//逻辑与
template bool logical_or//逻辑或
template bool logical_not//逻辑非

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string.h>
#include <string>
#include <vector>
#include <algorithm>
#include <functional>
using namespace std;
void  test01()
{
	negate<int> p;
	cout << p(5) << endl;
	cout << negate<int>()(2) << endl;

}
void  test02()
{
	cout << plus<int>()(2, 3) << endl;
}
class Print
{
public:
	void  operator()(int a)
	{
		cout << a << endl;
	}
};
void test03()
{
	vector<int> v;
	v.push_back(1);
	v.push_back(3);
	v.push_back(2);
	v.push_back(5);
	//sort(v.begin(), v.end(), greater<int>());
	sort(v.begin(), v.end(),less<int>());
	for_each(v.begin(), v.end(), Print());

}
int main()
{
	test03();
	return 0;
}

以上是关于STL:内建函数对象记录的主要内容,如果未能解决你的问题,请参考以下文章

FreeMarker内建函数

SGI STL functors(仿函数) 12

《STL源码剖析》——第七八章:仿函数与接配器

go内建函数(记录)

C++STL标准库学习笔记函数对象

Python的内建函数getattr()如何使用?