int函数

C++:形参带默认值的函数、内联函数、函数重载

∥☆過路亽.° 提交于 2020-03-06 19:14:40
文章目录 一、形参带默认值的函数 二、内联函数 三、函数重载 一、形参带默认值的函数 形参带默认值的函数 : 1.定义时给默认值的时候,从右向左给。 2.调用效率:若两个函数都传入变量,会提高效率,形参带默认值的函数会少一次mov指令;若传入数值,则效率不变。 3.定义时可以给形参默认值,函数声明时也可以给形参默认值。 4.形参给默认值时,不管是定义出给还是声明处给,形参默认值只能出现一次。 定义时给默认值: 什么是形参带默认值的函数呢?我们先来看这样一段代码: # include <iostream> using namespace std ; int sum ( int a , int b ) { return a + b ; } int main ( ) { int a = 10 ; int b = 20 ; int ret = sum ( a , b ) ; cout << "ret:" << ret << endl ; return 0 ; } 很简单,输出为30;但是我们将代码稍微修改一下: 第一种,我们a没有传入实参,给默认值b=20,最后执行成功; 第二种,我们a,b都没有传入实参,但是都给定默认值,最后也能成功执行; 第三种,b没有传入实参,给定默认值a=10,执行失败;证明形参给默认值的时候,只能从右向左给。平常使用时,从左向右输入参数

2020-2-15模拟赛题解

醉酒当歌 提交于 2020-03-06 18:24:19
前言 这场比赛我发挥欠佳,各种小失误不断,也需要我自己去反思吧,以后打模拟赛也要有选择性地去打,毕竟 一天 \(3\) 场比赛 肯定会有影响。 正文 1. 子数整数 错点 考试的时候蒟蒻把 No 打成了 NO 。 分析 这道题实际上就是个小模拟,您只要会 \(for\) 循环就可以轻松过掉此题。 答案是直接统计一下就好了。 我们可以直接从 10000 到 30000 循环,算出 s1 、 s2 、 s3 。 for(int i=10000;i<=30000;i++){ int g=i%10,s=i/10%10,b=i/100%10,q=i/1000%10,w=i/10000%10,s1=100*w+10*q+b,s2=100*q+10*b+s,s3=100*b+s*10+g;//s1,s2,s3的计算 if(s1%k==0&&s2%k==0&&s3%k==0)writen(i),f=1; } 总代码 #include <bits/stdc++.h> using namespace std; template<typename T>inline void read(T &FF){ T RR=1;FF=0;char CH=getchar(); for(;!isdigit(CH);CH=getchar())if(CH=='-')RR=-1; for(;isdigit(CH);CH

LeetCode 295. Find Median from Data Stream(multiset,heap)

狂风中的少年 提交于 2020-03-06 18:11:26
题目 题意:有n个操作,存入数字,和输出中位数 题解:要确保输入数字的操作和输出中位数的操作,都是低于等于Log(n)的效率。 那么怎么做呢?我们维护两个multiset ,内部是一棵红黑树。一个树A 维护的是较大值,树B维护的是较小值。A,B平分秋色。 中位数显然就是A里的最小值和B里的最大值中选择。那么在存数字的时候判断这个数字应该放到哪个树里,然后再需要判断A,B的元素数量差,如果出现差值大于1,就要把较多的那个树的某个极值元素放到较小的那个树里,始终保持两个树的元素数量差不超过1,所以存入数字的效率是O(logn*3) 而取中位数是O(1)的效率 不知道为什么multiset的size()函数,会超时,难道是O(n)的效率取size吗?介绍里明明是constant的时间复杂度啊。 用优先队列也可以的。效率是一样的。 class MedianFinder { public: /** initialize your data structure here. */ multiset<int> m1; multiset<int> m2; int n=0; int len1; int len2; MedianFinder() { m1.clear(); m2.clear(); len1=0; len2=0; } void addNum(int num) { if(len1==0&

操作符重载的概念

China☆狼群 提交于 2020-03-06 17:31:51
我们先来看下面这个例子是否能编译通过 实现复数的相加 # include <stdio.h> class Complex { public : int a ; int b ; } ; int main ( ) { Complex c1 = { 1 , 2 } ; Complex c2 = { 3 , 4 } ; Complex c3 = c1 + c2 ; return 0 ; } 结果: sice@sice:~$ g++ c.cpp c.cpp: 在函数‘int main ( ) ’中: c.cpp:12:22: 错误: ‘operator+’在‘c1 + c2’中没有匹配 显然C++不支持这样对象直接相加 改进(1): # include <stdio.h> class Complex { private : int a ; int b ; public : Complex ( int a = 0 , int b = 0 ) { this - > a = a ; this - > b = b ; } int getA ( ) { return a ; } int getB ( ) { return b ; } friend Complex Add ( Complex & p1 , Complex & p2 ) ; } ; Complex Add ( Complex & p1 ,

7-10 公路村村通 (30分)

瘦欲@ 提交于 2020-03-06 17:25:22
现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。 输入格式: 输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N);随后的M行对应M条道路,每行给出3个正整数,分别是该条道路直接连通的两个城镇的编号以及该道路改建的预算成本。为简单起见,城镇从1到N编号。 输出格式: 输出村村通需要的最低成本。如果输入数据不足以保证畅通,则输出−1,表示需要建设更多公路。 输入样例: 6 15 1 2 5 1 3 3 1 4 7 1 5 4 1 6 2 2 3 4 2 4 6 2 5 2 2 6 6 3 4 6 3 5 1 3 6 1 4 5 10 4 6 8 5 6 3 输出样例: 12 代码: # include <cstdio> # include <algorithm> using namespace std ; const int MAXN = 1001 ; int N , M , Father [ MAXN ] , cnt = 0 , Cost = 0 ; //Father为每棵树的根节点,cnt为已收入的边的条数,Cost为最终费用 struct Enode { //边节点 int v1 , v2 , w ; } E [ 3 * MAXN ] ; bool cmp ( Enode E1 , Enode

C语言之指针

社会主义新天地 提交于 2020-03-06 12:00:24
#include <stdio.h> #include <stdlib.h> void swap_t(int*a,int*b) {int p; p=*a; #借助指针,交换变量值 *a=*b; *b=p; } int main() { int a,b; a=6,b=5; #a,b的地址不变,但是经指针操作后其中的值交换 int *p,*q; #声明变量上,一般变量是被分配合法地址的,但是指针变量p是有地址的,但是p的内容可能是非法地址。 p=&a; q=&b; swap_t(p,q); #单向传递:只进不出(数值无法回传)swap函数结束后,p,q不变 printf("%d,%d",*p,*q); } 指针与数组的关系,&a[i]=(a+i),a[i]=*(a+i)#每次从a(首地址算起)即重新计算地址,p++(有规律的改变当前地址的值省去了重新计算)效率更高,但是其不够直观,数组a 不能a++的原因:a即是数组首地址是一个常量,而p对应是变量,他可以改变内部存储的地址实现p++ 区分几种形式: 0x0001 p++; //p++可以把p++看成两步,第一步返回了p的值,第二步对p自加操作有;p实现了自增 *p; //*(p+1) 0x0002 *p++ 与*(p++)//++与*同优先级,右结合性,有因为是后加加,所以第一步返回p的值,后*p,后p自增 0x0003 *(++p)

4.1 图像采样

南笙酒味 提交于 2020-03-06 11:45:14
4.1.1 最近邻插值 最简单图像缩放方法,原理:提取源数据图像中与其邻域最近像素值来作为目标图像相对应点的像素值。 目标各像素点的灰度值-->源图像中与其最邻近像素的灰度值。 OpenCV中提供3个将浮点型数转换成整数的函数:cvRound/cvFloor/cvCeil 1 ////////https://blog.csdn.net/linqianbi/article/details/78593724 2 ////////https://blog.csdn.net/qq_22424571/article/details/80918549 3 #include<opencv2\core\core.hpp> 4 #include<opencv2\highgui\highgui.hpp> 5 #include<opencv2\imgproc\imgproc.hpp> 6 #include<iostream> 7 using namespace cv; 8 //最近邻插值 9 //基于等间隔提取图像的缩放 10 Mat imageReduction1(Mat &srcImage, float kx, float ky)//原始图形以及缩放比例 11 { 12 //获取输出图像分辨率 13 int nRows = cvRound(srcImage.rows * kx);/

使用Matlab进行符号定积分运算

孤人 提交于 2020-03-06 10:17:12
使用matlab进行符号定积分运算如下: syms x; syms b; f =b + 2*x; a=int(f,x,-6,6) a =12*b 首先设置参量,本例中为x 和 b; int函数(被积函数,积分变量,积分下限,积分上限),如果只有一个参量,则可以省略第二项。上下两例分别对x和b进行积分。 syms x; syms b; f =b + 2*x; a=int(f,b,-6,6) a =24*x 来源: CSDN 作者: i-coder 链接: https://blog.csdn.net/qq_43330721/article/details/104689295

flex---->ActionScript 3.0基本语法

纵然是瞬间 提交于 2020-03-06 09:47:57
测试输出: trace(123); trace("abc"); 变量与常量: var a:int, b:int, c:int; a = b = c = 6; trace(a, b, c); //6 6 6 const d:int = 123; trace(d); 数据类型: //整形 var iV1:int = -1; var iV2:int = new int(-2); var iV3:int = new int("-3"); trace(iV1); trace(iV2); trace(iV3); //无符号整形 var uV1:uint = 1; var uV2:uint = new uint(2); trace(uV1); trace(uV2); //浮点数 var nV1:Number = 3.14159265; var nV2:Number = new Number(-3.14); trace(nV1); trace(nV2); //布尔值 var bV1:Boolean = true; var bV2:Boolean = new Boolean(false); trace(bV1); trace(bV2); //字符串 var sV1:String = 'ActionScript'; var sV2:String = new String("万一的 Delphi 博客"

flex---->ActionScript 3.0基本语法

拟墨画扇 提交于 2020-03-06 09:47:44
测试输出: trace(123); trace("abc"); 变量与常量: var a:int, b:int, c:int; a = b = c = 6; trace(a, b, c); //6 6 6 const d:int = 123; trace(d); 数据类型: //整形 var iV1:int = -1; var iV2:int = new int(-2); var iV3:int = new int("-3"); trace(iV1); trace(iV2); trace(iV3); //无符号整形 var uV1:uint = 1; var uV2:uint = new uint(2); trace(uV1); trace(uV2); //浮点数 var nV1:Number = 3.14159265; var nV2:Number = new Number(-3.14); trace(nV1); trace(nV2); //布尔值 var bV1:Boolean = true; var bV2:Boolean = new Boolean(false); trace(bV1); trace(bV2); //字符串 var sV1:String = 'ActionScript'; var sV2:String = new String("万一的 Delphi 博客"