C++ STL(第二篇:仿函数)

本文详细介绍了C++ STL中的仿函数,包括其定义、作用、类型以及算术类、关系类和逻辑类仿函数的分类。通过实例展示了如何使用一元和二元仿函数,并探讨了为什么仿函数比函数指针更适合STL。
摘要由CSDN通过智能技术生成

1、概述

前面我简单的整理了STL的概述,便一直对STL没有在进行整理。其主要原因是STL的源码实在是太深奥了,我的微末道行,还不能完全的看明白,虽然我已经看了两遍,但是掌握的程度是在是让人汗颜。今天整理呢,就是觉得不能因为难就不前进了,困难还是要克服的,想当初看《深入了解计算机系统》也很痛苦,看完之后感觉自己重新认识了计算机。整理呢也不是全部一口气整理,我会循序渐进,先易后难。

2、仿函数定义及作用

仿函数就是函数对象,只不过仿函数是早起的名字,而函数对象是 C++ 标准规范的名字。就实现意义而言,“函数对象” 比较贴切:一种具有函数特质的对象。不过就行为而言,仿函数比较突出:仿函数可以由调用者像函数一样调用。如:

class MyAdd
{
public:
	int operator()(int a, int b) { return a + b; }	//重载了()运算符
};

int main(int argc, char** argv)
{
	MyAdd abcd;
	cout << MyAdd()(4,5) << endl;	//通过产生临时对象,进行调用
	cout << abcd(3, 4) << endl;		//先定义一个函数对象,通过函数对象进行调用
}

STL提供的算法一般有两个版本。其中一个版本表现出最直观的某种操作,还有一个版本则表现出最泛化的

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值