首页 > 编程语言 >c++中的缺省参数

c++中的缺省参数

时间:2024-04-09 22:05:17浏览次数:16  
标签:扩容 缺省 c++ 我们 参数 开辟

c++相对于C语言的一个新的语法叫做缺省参数。

什么叫做缺省参数呢???

我们先来看我们已知的Add函数

缺省参数就是给x和y赋一个默认的值 

 我们可以根据自己的需要将x或者y给上缺省值

看下面一个例子:

 如果我们将函数中所有的参数都给上了缺省值,我们也叫这些参数为全缺省参数。

注意我们在给函数传参的时候我们只能从左向右传参数,也就是说要么是全部缺省,否则被缺省的参数的前面一定是有值的。 

 那么缺省参数有什么价值呢???

我们先来看我们已经学习过的栈数据结构:随着使用,开辟的空间可能会不够用,我们会进行扩容,这里的扩容过程中,我们难免的会进行异地扩容,所以为了避免异地扩容,我们就会使用缺省参数,比如我们已知要添加100个数据我们就可以直接通过缺省参数传值开辟如数空间。

先来看以前的开辟空间的方式

 而现在,我们可以通过使用缺省参数,来减少扩容的消耗,调用函数的时候我们可以将我们需要开辟空间的数量传入其中。

 注意使用缺省参数的时候我们不能声明和定义同时给缺省参数,因为害怕两个地方的缺省参数会不一致,导致“打架”。一般情况下,我们定义的时候不给缺省参数,声明的时候给缺省参数

标签:扩容,缺省,c++,我们,参数,开辟
From: https://blog.csdn.net/Sugar_goat/article/details/137568698

相关文章

  • C++11:超进化--lambda表达式
    目录一、lambda表达式的引入二、lambda表达式的语法2.1lambda表达式各部分说明2.2lambda函数的初步使用2.3详谈捕捉列表2.3.1[var][&var] 2.3.2[=]传值捕捉当前域所有对象 2.3.3[&]传引用捕捉所有对象2.3.4[&,val]混合捕捉​编辑 三、lambda底层、lambda与函数对......
  • 问题解决 usr/include/c++/11/bits/list.tcc:344:24: error: no match for ‘operator
    1.问题解决usr/include/c++/11/bits/list.tcc:344:24:error:nomatchfor‘operator==’错误解释:这个编译错误表明编译器在尝试使用==操作符比较两个对象时找不到匹配的操作符函数。在C++中,如果你尝试比较两个自定义类型的对象,且没有为这些对象定义==操作符,编译器将无法进......
  • C++ 标准模板库 STL(1)set 与 multiset
    一、简介    set与multiset容器能够快速查找键,键是存储在一维容器中的值,二者的区别在于前者不能够存储重复的键值,后者能够存储重复键值。    set与multiset内部结构类似于二叉树,并且被插入到set与multiset容器中的元素会默认进行排序,从而提高查找速度。这意......
  • 突破编程_C++_网络编程(Windows 套接字(setsockopt 选项设置))
    1setsockopt函数介绍Windows套接字(Winsock)的setsockopt函数是用于设置套接字选项的重要工具。通过这个函数,开发者可以调整套接字的行为,以满足特定的网络应用需求。(1)函数原型intsetsockopt(SOCKETs,intlevel,intoptname,constchar*optval,intop......
  • MinGW-w64 C/C++编译器的下载和安装
    1.介绍        MinGW(“MinimalistGNUforWindows”),以前称为mingw32,是一个用于创建MicrosoftWindows应用程序的免费开源软件开发环境。        MinGW-w64项目是gcc的完整运行时环境,支持Windows64位和32位操作系统本机二进制文件。2.安装包下载......
  • C++常见错误及分析
    warning:'typedef'wasignoredinthisdeclaration问题代码:点击查看代码typedefstructsqList{//把typedef删掉intarrayList[maxSize];intlengthList;};//或者是在后面加上sqList。error:invalidtypes'int[int]'forarraysubscript(数组下标......
  • # C++之STL整理(7)之queue用法(创建、赋值、增删查改)详解
    C++之STL整理(7)之queue用法(创建、赋值、增删查改)详解注:整理一些突然学到的C++知识,随时mark一下例如:忘记的关键字用法,新关键字,新数据结构C++的queue用法整理C++之STL整理(7)之queue用法(创建、赋值、增删查改)详解queue1.queue构造函数2.queue存取、插入和删除操作3.......
  • 54、C++内存模型
    在 C++ 中,程序运行时,内存主要分成四个区,分别是栈、堆、数据段和代码段。                栈:存储局部变量、函数参数和返回值。堆:存储动态开辟内存的变量。数据段:存储全局变量和静态变量。代码段:存储可执行程序的代码和常量(例如字符常量),此存储区不可修......
  • 突破编程_C++_网络编程(Windows 套接字(API 接口(2)))
    1TCP连接管理1.1connect函数connect函数用于发起一个TCP连接请求到远程服务器。这个函数通常用于客户端套接字,以建立与服务器的连接。(1)函数原型intconnect(SOCKETs,conststructsockaddr*name,intnamelen);(2)参数说明s:一个已创建但未连接的套接字描述符......
  • 【每周例题】力扣 C++ 移除元素
    移除元素题目移除元素 思路分析1.涉及到容器,那么就很直接的想法,遍历容器,找出与val相同的数,移除,然后利用函数输出长度与移除后的数组2.移除部分我们使用指针去处理,用指针遍历数组,符合移除条件的利用erase函数移除注:这里使用到了一个万能头文件,参加蓝桥杯的同学可以试试运用......