函数对象

若一个类重载了运算符“()”,则该类的对象就成为函数对象。函数对象可以用于标准库算法。函数对象和函数指针很相似,但也有区别。当函数对象使用模板时可以赋值给函数指针。

#include <iostream
#include <vector>
#include <algorithm>
#include <numeric>
using namespace std;int sumsquares(int total, int value)
{return (total += value*value);
}template <class T>
void printValue(T first, T last)
{for (; first != last; first++){cout << *(first) << " ";}cout << endl;
}template <class T>
class sumPower
{
private:int power;
public:sumPower(int power) :power(power) {};const T operator()(const T & total, const T &value){T v = value;cout << "the function is called" << endl;for (int i = 1; i < power; i++)v *= value;return (total + v);}
};int main()
{const int size = 3;int a[] = { 1,2,3 };vector<int> a1(a, a + size);printValue(a1.begin(),a1.end());int result = accumulate(a1.begin(), a1.end(), 0,sumsquares);cout << "1)" << "平方和" << result << endl;sumPower<int> b(4);//每次调用它的函数形参时,它都使用相应的调用操作符result = accumulate(a1.begin(), a1.end(), 0, sumPower<int>(3));cout << "2)" << "立方和" << result << endl;return 0;
}

 

函数运行结果:

 

 

 参考链接:

https://www.coursera.org/learn/cpp-chengxu-sheji

转载于:https://www.cnblogs.com/helloforworld/p/5655378.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/490357.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

拍下首张黑洞照片的团队获300万美元奖金:2020年科学突破奖揭晓

来源&#xff1a;科学突破奖科学突破奖2019 年 9 月 5 日&#xff0c;2020 年度突破奖&#xff08;Breakthrough Prize&#xff09;揭晓。突破奖&#xff0c;又被誉为“科学界的奥斯卡”&#xff0c;现已经入第八个年头。突破奖每年都会表彰在生命科学&#xff0c;基础物理学和…

C#获取ip的示例

界面 using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms; namespace TestIP{ public partial class Form1 : Form { public Form1() { InitializeComponent()…

硬盘序列号查询软件_【西数硬盘购买指南】干货——西数移动硬从购买到验证体会心得...

玩摄影有两年多了&#xff0c;所以照片和视频越来越多。上个月618活动&#xff0c;有入手了一块移动硬盘。买多是&#xff1a;西部数据My Passport Ultra移动硬盘4T下面从购买到验证全过程来说图片来源网络图片来源网络一、天猫截图上一篇文章&#xff1a;【希捷硬盘购买指南】…

多角度解析特斯拉电动车技术到底领先了多少?|厚势

来源&#xff1a;Astroys厚势按&#xff1a;不管是豪华车、传统车还是新造车势力造的电动车&#xff0c;都以对标特斯拉为荣。是什么让特斯拉成为电动车的图腾&#xff1f;特斯拉的电动车技术到底领先多少&#xff1f;本文 8000 余字&#xff0c;多个角度进行分析解读。在人们的…

Logistic回归的牛顿法及DFP、BFGS拟牛顿法求解

牛顿法 1 # coding:utf-82 import matplotlib.pyplot as plt3 import numpy as np4 5 def dataN(length):#生成数据6 x np.ones(shape (length,3))7 y np.zeros(length)8 for i in np.arange(0,length/100,0.02):9 x[100*i][0]110 x[100*i][1]…

memcached客户端_分布式算法真是吊炸天 – memcached - 第287篇

相关历史文章&#xff08;阅读本文之前&#xff0c;您可能需要先看下之前的系列 &#xff09;色谈Java序列化&#xff1a;女孩子慎入 - 第280篇烦不烦&#xff0c;别再问我时间复杂度了&#xff1a;这次不色&#xff0c;女孩子进来吧 - 第281篇双向链表&#xff0c;比西天还远&…

2018年中国人工智能100强研究报告

来源&#xff1a;前瞻产业研究院《崛起的超级智能》一书主要阐述当今天人类为人工智能的春天到来而兴奋&#xff0c;为人工智能是否超越人类而恐慌的时候&#xff0c;一个更为庞大、远超人类预期的智能形态正在崛起&#xff0c;种种迹象表明50年来&#xff0c;互联网正在从网状…

印度首次挑战登月告败,一步之遥≈多大差距?

来源&#xff1a;三体引力波&#xff08;the-3body&#xff09;最坏消息还是来了。今天凌晨&#xff0c;印度探测器首次登月尝试&#xff0c;只差一步之遥&#xff0c;距离月表不到2100米&#xff0c;月船2号着陆器与班加罗尔控制中心失去联系&#xff0c;信号中断&#xff0c;…

word交叉引用插入文献后更新域之后编号未更新

这篇文章不教怎么设置交叉引用&#xff0c;这篇文章说的是设好了交叉引用&#xff0c;在某一条文献后面添加了一个文献后&#xff0c;选中全文&#xff0c;右键更新域&#xff0c;编号项仍然没有改变&#xff01;&#xff01; 这是因为刚刚在插入文献时是在上一条文献的编号项…

耐能团队论文登上《自然·电子学》:集成忆阻器与CMOS以实现更好的AI

《自然电子学》杂志封面&#xff08;资料图&#xff0c;来源&#xff1a;《自然》官网&#xff09;来源&#xff1a;Kneron耐能近日&#xff0c;《自然》杂志子刊《自然电子学》&#xff08;Nature Electronics&#xff09;发表论文《集成忆阻器与CMOS以实现更好的AI》&#xf…

word交叉引用多条文献

有时候需要引用多条连续的文献&#xff0c;例如[1][2][3]需要把它变为[1-3]&#xff0c;更新域后不受影响仍然正确。 4、选中这两个代码域&#xff0c;右键->切换域代码&#xff0c;再选中这两个代码域&#xff0c;右键->更新域&#xff0c;引用号码变为[13]&#xff0c;…

pppcloud云主机内LINUX用户安全管理2

◆超级用户权限与授权 ●建立多个超级用户 不少新系统管理员认为root用户是唯一的超级用户&#xff0c;其实root只是系统默认的超级用户的名称&#xff0c;root并非因为它叫root而成为超级用户的。随便打开一个/etc/passwd文件的例子&#xff0c;你就会发现如下几行&#xff1a…

一份完全解读:是什么使神经网络变成图神经网络?

图1&#xff1a;来自(Bruna等人&#xff0c;ICLR&#xff0c;2014)的图&#xff0c;描绘了3D领域内的MNIST图像。虽然卷积网络很难对球面数据进行分类&#xff0c;但是图网络可以很自然地处理它。可以把它当做是一个处理工具&#xff0c;但在实际应用程序中会出现许多类似的任务…

中国芯片将靠此超车!RISC-V架构神在哪全解构【附下载】

来源&#xff1a; 智东西RISC-V&#xff08;发音为“risk-five”&#xff09;是一个基于精简指令集&#xff08;RISC&#xff09;原则的开源指令集架构&#xff08;ISA&#xff09;&#xff0c;简易解释为开源软件运动相对应的一种“开源硬件”。该项目2010年始于加州大学伯克利…

sha256校验工具_使用AIDE工具做入侵检测

AIDE(Advanced Intrusion Detection Environment,高级入侵检测环境)是个入侵检测工具&#xff0c;主要用途是检查文档的完整性。AIDE能够构造一个指定文档的数据库&#xff0c;他使用aide.conf作为其配置文档。AIDE数据库能够保存文档的各种属性&#xff0c;包括&#xff1a;权…

transition过渡的趣玩

本例中将三张图&#xff08;来自网络&#xff09;进行堆叠&#xff0c;鼠标悬停触发。附有源代码 <!DOCTYPE html> <html> <head><title>照片墙</title><meta charset"utf-8"><style type"text/css">.parent{wi…

网上花店系统源码_如何创建一个花店线上商城,可以开发一个微信小程序

说起来花店&#xff0c;相信很多人都去花店买过花&#xff0c;许多花店通常都是个人开的店&#xff0c;一般位置回去选取在人口稠密的地区&#xff0c;以求争取到附近的流量。一般来说&#xff0c;人们会在有人创业或做些开心的事&#xff0c;或者情人节时买鲜花。随着城市的不…

机器的类比

来源&#xff1a;人机与认知实验室如果说机器深度学习有几个重要的边界&#xff1a;数据边界、语义边界、符号边界和因果边界。那么突破这几个边界的口子可能就是——类比&#xff0c;不仅是比例类比&#xff0c;更是跨域机器类比机理的形成可能就是一条前进的光明大道。实质上…

【深度】全球机器人产业趋势及特征分析

来源&#xff1a;工业机器人前沿当前&#xff0c;全球机器人市场规模持续扩大&#xff0c;工业机器人市场增速回落&#xff0c;服务、特种机器人增速稳定。技术创新围绕仿生结构、人工智能和人机协作不断深入&#xff0c;产品在教育陪护、医疗康复、危险环境等领域的应用持续拓…

为什么多个线程不可能同时抢到一把锁_并发基础理论:原子性问题、锁、管程...

我们再回顾一下&#xff0c;原子性问题的根源是CPU切换线程执行指令所导致的&#xff0c;当前一个对共享变量的操作没有完成之前&#xff0c;CPU又切换到另外一个线程来操作对应的共享变量&#xff0c;那么最终产生的结果就可能出现问题。比如如果现在有两个线程都在执行number…