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:内建函数对象记录的主要内容,如果未能解决你的问题,请参考以下文章