前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >C++ 中的函数对象(仿函数)的使用

C++ 中的函数对象(仿函数)的使用

作者头像
耕耘实录
发布于 2022-05-09 08:17:20
发布于 2022-05-09 08:17:20
2.2K00
代码可运行
举报
文章被收录于专栏:耕耘实录耕耘实录
运行总次数:0
代码可运行

函数对象,即一个重载了括号操作符“()”的对象。当用该对象调用此操作符时,其表现形式如同普通函数调用一般,因此取名叫函数对象。即重载函数调用操作符的类,其对象通常称为函数对象。函数对象使用重载()时,行为类似函数调用,因此也叫仿函数。

函数对象在使用时,可以像普通函数那样调用,可以有参数,可以有返回值。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<iostream>
using namespace std;

struct Add {
    int operator()(int v1, int v2) {
        return v1 + v2;
    }
};

void test() {
    Add add;
    cout<<add(10, 20)<<endl;
}

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

函数对象超出普通函数的概念,可以有自己的状态。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<iostream>
#include <string>

using namespace std;

struct Print {
    Print() {
        this->count = 0;
    }

    void operator()(string demo) {
        cout << demo << endl;
        this->count++;
    }

    int count;
};

void test() {
    Print p;
    p("This is a demo.");
    p("This is a demo.");
    p("This is a demo.");
    p("This is a demo.");
    p("This is a demo.");
    cout << "Print打印输出的次数:" << p.count << endl; // 输出次数为5
}

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

函数对象可以使用 new 创建对象:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<iostream>
#include <string>

using namespace std;

struct Print {
    Print() {
        this->count = 0;
    }

    void operator()(string demo) {
        cout << demo << endl;
        this->count++;
    }

    int count;
};

void test() {
    auto *p = new Print();
    (*p)("This is a demo.");
    (*p)("This is a demo.");
    (*p)("This is a demo.");
    (*p)("This is a demo.");
    cout << "Print打印输出的次数:" << p->count << endl;
    delete p;
    p = nullptr;
}

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

函数对象可以作为参数进行传递。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<iostream>
#include <string>

using namespace std;

struct Print {
    Print() {
        this->count = 0;
    }

    void operator()(string demo) {
        cout << demo << endl;
        this->count++;
    }

    int count;
};

void do_print(Print &p, string s){
    p(s);
}

void test() {
    auto *p = new Print();
    do_print((*p),"This is a demo.");
    delete p;
    p = nullptr;
}

int main() {
    test();
    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-02-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
KubeSphere 最佳实战:探索 Kubernetes 持久化存储之 NFS 终极实战指南
今天分享的内容是 KubeSphere 最佳实战「2024」 系列文档中的 探索 Kubernetes 持久化存储之 NFS 终极实战指南。
运维有术
2024/07/16
7470
KubeSphere 最佳实战:探索 Kubernetes 持久化存储之 NFS 终极实战指南
KubeSphere 最佳实战:探索 Kubernetes 持久化存储之 Rook Ceph 初窥门径
在 Kubernetes 生态系统中,持久化存储是支撑业务应用稳定运行的基石,对于维护整个系统的健壮性至关重要。对于选择自主搭建 Kubernetes 集群的运维架构师来说,挑选合适的后端持久化存储解决方案是关键的选型决策。目前,Ceph、GlusterFS、NFS、Longhorn 和 openEBS 等解决方案已在业界得到广泛应用。
运维有术
2024/08/07
3710
KubeSphere 最佳实战:探索 Kubernetes 持久化存储之 Rook Ceph 初窥门径
Kubernetes 集群使用 NFS 网络文件存储
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/aixiaoyang168/article/details/83988253
哎_小羊
2019/05/25
3.9K0
KubeSphere 最佳实战:探索 Kubernetes 持久化存储之 Longhorn 初窥门径
今天分享的内容是 KubeSphere 最佳实战「2024」 系列文档中的 探索 Kubernetes 持久化存储之 Longhorn 初窥门径。
运维有术
2024/07/17
1500
KubeSphere 最佳实战:探索 Kubernetes 持久化存储之 Longhorn 初窥门径
KubeSphere 最佳实战:探索 Kubernetes 持久化存储之 Longhorn 初窥门径
为了丰富我们的技术栈,并为未来的容器云平台设计持久化存储提供更多灵活性和选择性。今天,我将跟大家一起探索,如何将 Longhorn 集成至 KubeSphere 管理的 Kubernetes 集群。
运维有术
2024/07/17
2621
KubeSphere 最佳实战:探索 Kubernetes 持久化存储之 Longhorn 初窥门径
NFS分布式存储与nfs-subdir-external-provisioner
BUG弄潮儿
2025/03/24
1150
NFS分布式存储与nfs-subdir-external-provisioner
将 腾讯云CFS 作为 TKE(容器服务) 默认 StorageClass,动态分配PVC
今天安装 Kubesphere 时发现缺少 StorageClass,导致无法创建依赖的 PVC,搞起。
SRE扫地僧
2024/04/06
3480
将 腾讯云CFS 作为 TKE(容器服务) 默认 StorageClass,动态分配PVC
实战:用“廉价”的NFS作为K8S后端存储
大家都知道,NFS是一种基于网络的文件系统协议,允许在不同的机器之间共享文件系统资源。在K8S中,可以使用NFS作为后端存储,以提供持久化存储和共享存储卷。但是否适合在生产环境使用NFS作为后端存储,这取决于具体的应用程序和使用场景。如果应用程序对性能和可靠性要求比较高,可能需要选择其他更适合的存储方案,比如ceph。如果只是在测试或者开发环境中,我觉得使用NFS可以更方便地实现共享存储卷,提高测试或者开发的效率。
不背锅运维
2023/04/10
1.3K0
实战:用“廉价”的NFS作为K8S后端存储
1.20版本TKE集群使用nfs-subdir-external-provisioner挂载nfs
使用tke的时候,很多时候会用到共享存储,tke默认支持的共享存储有cos和cfs(类似于nfs),一般使用cfs的比较多,但是现在tke的cfs组件现在还不支持共享cfs实例,也就是说你自动创建pvc,每个pvc就会用到一个共享文件系统,这样比较浪费资源,其实我们可以在tke上使用自建nfs来进行存储,k8s的1.20之前版本都是推荐使用K8S NFS Provisioner,但是现在这个组件不维护了,并且不兼容1.20以后版本的k8s集群。
聂伟星
2022/03/25
1.5K0
kubernetes(k8s) 存储动态挂载
其中 nfs-kernel-server 为服务端, nfs-common 为客户端。
小陈运维
2021/11/17
3.3K1
我要在k8s部署nfs动态存储
用 kubectl describe pvc -n jumpserver jumpserver-pvc 来查看详细信息发现以下提示
dgds
2023/06/09
1.3K0
KubeSphere 部署的 Kubernetes 集群使用 GlusterFS 存储实战入门
上一期实战课程,我们模拟真实的生产环境实战演示了如何使用 KubeKey 将新增 Worker 节点添加到已有的 Kubernetes 集群 。最终我们部署完成了一套 3 Master 和 3 Worker 节点的 Kubernetes 集群。
运维有术
2023/07/21
1.4K2
KubeSphere 部署的 Kubernetes 集群使用 GlusterFS 存储实战入门
【云原生 | Kubernetes篇】Kubernetes(k8s)持久化(十七)
有时,在单个 Pod 中共享卷以供多方使用是很有用的。 volumeMounts.subPath 属性可用于指定所引用的卷内的子路径,而不是其根路径。
Lansonli
2022/06/23
5050
【云原生 | Kubernetes篇】Kubernetes(k8s)持久化(十七)
TKE使用nfs文件系统
本文主要实践TKE集群使用nfs文件系统,包括使用cfs-csi(新创建实例,共享新实例),静态nfs挂载,已有实例共享挂载
williamji
2024/07/31
1600
KubeKey 升级 Kubernetes 次要版本实战指南
上一期我们完成了 KubeSphere 和 Kubernetes 补丁版本升级实战 , 本期我们实战如何利用 KubeKey 实现 Kubernetes 次要版本升级。
运维有术
2023/12/06
4120
KubeKey 升级 Kubernetes 次要版本实战指南
KubeKey 升级 KubeSphere 和 Kubernetes 补丁版本实战指南
KubeSphere v3.4.1 已于 2023 年 11 月 10 日正式发布,升级说明详见 Releases-v3.4.1 发布说明。该发布版修复了 v3.4.0 中存在的许多问题,建议所有人更新。
运维有术
2023/12/05
5350
KubeKey 升级 KubeSphere 和 Kubernetes 补丁版本实战指南
【排坑指南之kubeSphere】2022年最新版-”kubeSphere3.2.1 Paas容器云平台“使用DevOps-CICD之”排坑指南“
@toc 前言 作者主页:https://blog.csdn.net/qq_48450494?type=blog 作者博客:http://ygcloud.work/ 最近几天一直在学习kubeSphe
秋意零
2022/05/15
7060
【排坑指南之kubeSphere】2022年最新版-”kubeSphere3.2.1 Paas容器云平台“使用DevOps-CICD之”排坑指南“
33 张高清大图,带你玩转 KubeSphere v4.1.2 部署与扩展组件安装
备受瞩目的 KubeSphere v4.1.2 已经正式官宣发布,该版本带来了一个重大优化:增加默认的扩展组件仓库。
运维有术
2024/11/11
2570
33 张高清大图,带你玩转 KubeSphere v4.1.2 部署与扩展组件安装
企业级Kubernetes离线部署指南
修改/etc/rancher/rke2/config.yaml指定数据目录到数据盘:
宅蓝三木
2025/03/15
1420
企业级Kubernetes离线部署指南
k8s 使用新版NFS Provisioner配置subdir
NFS在k8s中作为volume存储已经没有什么新奇的了,这个是最简单也是最容易上手的一种文件存储。最近有一个需求需要在k8s中使用NFS存储,于是记录如下,并且还存在一些骚操作和过程中遇到的坑点,同时记录如下。
没有故事的陈师傅
2021/08/13
3.6K0
推荐阅读
相关推荐
KubeSphere 最佳实战:探索 Kubernetes 持久化存储之 NFS 终极实战指南
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档