C++基础(2)——函数高级和函数对象

news2024/7/7 17:09:15

前言

本文主要介绍了C++中函数高级相关的内容

3.1:函数默认参数

在函数定义的时候可以给形参赋初值,如果函数在调用的时候有传入参数,就使用传入的参数,如果没有就用默认的。

注意事项

1:如果某个参数有了默认值,那么从这个参数开始,往右的参数都必须有默认值,没有的话就会报错

 2:函数的声明和实现两种情况只能有一种情况给函数传入默认参数

3.2:函数占位参数

3.3:函数重载

基本概念:函数名可以相同,函数参数类型不同或者顺序不同、或者个数不同都可以是函数重载的条件。但是函数的返回值不可作为函数重载的条件(因为函数调用不一定要用对应类型的变量进行接收)。

引用作为重载的条件

函数重载碰到默认参数的情况可能会出错

8.1:函数对象基本概念

1:重载函数调用操作符()的类,其对象常称为函数对象

2:函数对象使用重载的()时,行为类似函数调用,也叫仿函数,函数对象(仿函数)是一个类,不是一个函数

函数对象可以有自己的状态,在类中定义一个属性记录比如()调用了多少次

8.2:谓词(predicate)

返回bool类型的仿函数称为谓词。如果operator()接收一个参数就叫做一元谓词,如果operator()接受两个参数就叫做二元谓词。

一元谓词例子:

二元谓词例子(改变默认排序方式):

8.3:内建函数对象(算数仿函数、关系仿函数、逻辑仿函数)

算数仿函数:

关系仿函数:

系统中sort默认使用的是less<>的仿函数

逻辑仿函数:

总结

以上介绍了些C++中函数高级和函数对象的一些使用情况,非常感谢你能看到这。

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

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

相关文章

Scilab安装与入门

说明&#xff1a;Scilab主要是用于信号处理&#xff0c;我本次用它来进行滤波仿真 地址&#xff1a; Scilab 2023.1.0 | Scilab https://www.scilab.org/download/scilab-2023.1.0 下载好了&#xff0c;进行安装看看 下一步&#xff0c;接受许可协议 选择安装路径到D盘下了…

chatgpt赋能python:Python数值互换:让你的编程更加高效

Python数值互换&#xff1a;让你的编程更加高效 Python是一种高级编程语言&#xff0c;其灵活性和易于学习的特点使其在科学计算、数据分析和人工智能等领域变得非常流行。作为Python的用户&#xff0c;很多时候你可能需要将数值类型之间进行转换&#xff0c;这样可以提高你的…

第6章 面向对象

第6章 面向对象 6.1. Scala包 ​ 包的命名 ​ 包的导入 Scala中基本的import导入语法和Java完全一致 import java.util.List import java.util._ // Scala中使用下划线代替Java中的星号Java中import导入的语法比较单一&#xff0c;Scala对此进行扩展&#xff0c;Scala中的im…

Cadence Allegro PCB设计88问解析(二十八) 之 Allegro中使用Anti Etch分割平面

一个学习信号完整性仿真的layout工程师 最近看到关于Anti Etch的设置&#xff0c;因为本人之前在layout设计是使用过这个命令。后来去到别的公司就不用了&#xff0c;从网上看到说这个命令是用来负片设计的。在这里在说下正片和负片的概念&#xff1a; 正片&#xff1a;是指在a…

Git团队代码规范

Git团队代码规范 1. 分支的定义2. 约束2.1 远程命名2.2 拉取代码2.3 新建Issues2.3 代码规范2.4 MR提交 本文章讲解Git代码管理中团队应该遵守的一些规则&#xff0c;让大家可以愉快的一起开发工作。 本篇文章需要结合Git代码提交规范-实践篇 一起食用哟~ 上一节我们已经讲了如…

Vue----Vue属性绑定

【原文链接】Vue----Vue属性绑定 通过v-bind:xxx 的方式即可实现Vue的属性绑定&#xff0c;比如如下代码&#xff0c;为div标签增加class属性&#xff0c;class的属性值通过msg变量提供 <template><div v-bind:class"msg">测试属性绑定</div> &l…

Java XML

目录 XML简介 XML文档结构 XML组成部分 XML规范 解析XML DOM4J解析实战 1.XML简介 &#xff08;1&#xff09;定义&#xff1a;可扩展标记语言 &#xff08;2&#xff09;特点&#xff1a;跨平台&#xff0c;跨语言/系统 &#xff08;3&#xff09;作用&#xff1a;传…

windows编译运行es源码1

一. 基础搭载环境 win10 jdk 11 \ jdk8 idea 2022 gradle 8.1.1 【建议4.5.1以上】 elasticsearch 7.8.0 源码及安装包 二. 安装gradle 1. 官网下载链接&#xff1a;https://gradle.org/releases/ 2. 解压设置环境变量 (1) GRADLE_HOME 环境变量指向你的 Gradle…

利用jmeter java sample端口转发实现对远程数据库的压力测试

1 需求背景 对数据库进行压力测试时&#xff0c;需要模拟同一时间大量的sql请求发送&#xff0c;借助于jmeter的 sql请求可以实现&#xff0c;但是对RDS来说&#xff0c;需要进行端口映射(跳板机)访问远程数据库,对于单线程手工测试来说&#xff0c;可以直接通过CRT进行端口跳转…

chatgpt赋能python:Python支持一行多写,让你的代码更简洁高效

Python支持一行多写&#xff0c;让你的代码更简洁高效 Python是一种简洁而又灵活的编程语言&#xff0c;它支持一行多写代码&#xff0c;让你的代码更加简洁高效。当你需要在一行代码中写入多个语句时&#xff0c;使用一行多写可以让你的代码更加易读和易维护。这篇文章将介绍…

NUCLEO-F411RE RT-Thread 体验 (4) - GCC环境 LED控制以及CMD命令的添加

NUCLEO-F411RE RT-Thread 体验 (4) - GCC环境 LED控制以及CMD命令的添加 1、LED的控制 前面pin驱动移植后&#xff0c;我们使用rt_pin_mode() rt_pin_write() 控制gpio拉高拉低&#xff0c;从而控制LED灯的闪烁。 整个pin的初始化流程在rt_hw_board_init里。 rt_hw_pin_init…

梅林固件启用自定义DDNS(以cloudflare为例)

参考&#xff1a; In-a-dyn 组件&#xff1a;In-a-dynhttps://github.com/RMerl/asuswrt-merlin.ng/wiki/DDNS-services In-a-dyn配置示例https://github.com/troglobit/inadyn/tree/master/examples原理&#xff1a; 原版梅林固件即Asuswrt-Merlin 自384.7开始&#xff0c;引…

JDK自带的构建线程池的方式之newSingleThreadExecutor

newSingleThreadExecutor从名称上就可以知道这个是一个单例的线程池。在这个线程池中只有一个线程来处理任务。 就可以使用在业务涉及到顺序消费的时候。 newSingleThreadExecutor的代码展示 可以从这个在Executors中的静态方法newSingleThreadExecutor可以发现&#xff0c;该…

chatgpt赋能python:Python数值区间判断

Python数值区间判断 Python是一种高级编程语言&#xff0c;具有强大的数值计算和处理功能。在Python中&#xff0c;经常需要进行数值区间判断&#xff0c;以确定一个特定的数值是否位于指定的范围内。本文将介绍Python中常用的数值区间判断方法&#xff0c;并对其进行详细的讲…

SpringBoot操作Word实现文字替换和盖章(提供Gitee源码)

前言&#xff1a;在日常的工作当中&#xff0c;避免不了会涉及到一些Word文件方面的操作&#xff0c;这篇博客将使用SpringBoot整合开源Apache来操作Word&#xff0c;分享的都是目前实际当中会经常用到的一些功能代码都实际测试过&#xff0c;只分享干货&#xff0c;大家一键复…

AI加持、共建共享...亚马逊云科技重新定义云安全

我们正在进入数字化时代&#xff0c;无数传统企业正在飞速走上云端&#xff0c;无数基础设施服务在云的加持下焕发全新的活力。AI、物联网、大数据等新兴技术逐步落地应用&#xff0c;IaaS、PaaS、云原生技术日渐成熟&#xff0c;“云”正在快速扩容。2021年&#xff0c;我国云…

#10035. 「一本通 2.1 练习 1」Power Strings

Power Strings 题意简述&#xff1a; 求一个字符串由多少个重复的子串连接而成。 例如 ababab 由三个 ab 连接而成&#xff0c;abcd 由 abcd 由一个 abcd 连接而成。 输入格式 本题多组数据。 每一组数据仅有一行&#xff0c;这一行仅有一个字符串 s s s。 输入的结束标…

蓝牙GATT协议介绍

前言 现在低功耗蓝牙&#xff08;BLE&#xff09;连接都是建立在 GATT (Generic Attribute Profile) 协议之上。GATT 是一个在蓝牙连接之上的发送和接收很短的数据段的通用规范&#xff0c;这些很短的数据段被称为属性&#xff08;Attribute&#xff09;。 GAP 详细介绍 GAT…

鉴源论坛丨汽车电子ISO 26262:2018标准概述(一)

作者 | 郭建 上海控安可信软件创新研究院特聘专家 版块 | 鉴源论坛 观模 摘要&#xff1a;安全在汽车研发中是关键要素之一&#xff0c;辅助驾驶、车辆的动态控制等功能的研发和集成都需要加强安全系统研发&#xff0c;同时&#xff0c;需要为满足所有预期的安全目标提供证据…

牛客网最新890道大厂 Java 八股文面试题整理

程序员真的是需要将终生学习贯彻到底的职业&#xff0c;一旦停止学习&#xff0c;离被淘汰&#xff0c;也就不远了。 面试跳槽季&#xff0c;这是一个千年不变的话题&#xff0c;每到这个时候&#xff0c;很多人都会临阵磨枪&#xff0c;相信不快也光。于是&#xff0c;大家都…