- 博客(47)
- 收藏
- 关注
原创 模板进阶
非类型模板参数模板参数分类类型形参与非类型形参。类型形参即:出现在模板参数列表中,跟在class或者typename之类的参数类型名称。非类型形参,就是用一个常量作为类(函数)模板的一个参数,在类(函数)模板中可将该参数当成常量来使用。注意:浮点数、类对象以及字符串是不允许作为非类型模板参数的。非类型的模板参数必须在编译期就能确认结果。模板的特化概念 :通常情况下,使用模板可以实现一些与类型无关的代码,但对于一些特殊类型的可能会得到一些错误的结果函数模板的特化步骤:1.必须要先有一.
2021-05-11 12:40:18
191
原创 Vector
1.vc介绍vector是表示可变大小数组的序列容器。就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。本质讲,vector使用动态分配数组来存储它的元素。当新元素插入时候,这个数组需要被重新分配大小为了增加存储空间。其做法是,分配一个新的数组,然后将全部元素移到这个数组。就时间而言,这是一个相对代价高的任务,因为每当一个新的元素加入到容器的时候,v
2021-04-15 14:23:57
145
原创 String基础操作
1.push_back :在字符串后尾插字符c2.operator+= (重点): 在字符串后追加字符串str3.c_str(重点): 返回C格式字符串4.find + npos(重点) :从字符串pos位置开始往后找字符c,返回该字符在字符串中的位置(static const size_t npos = -1;size_t的最大价值npos是一个静态成员常数值,对于类型size_t元素而言,具有最大的可能值。此值在字符串成员函数中用作 len(或子)参数的值时,意味着"直到字符串的末尾"。
2021-04-07 16:01:53
168
原创 类和对象
构造函数是要初始化的1.初始化列表:以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个**"成员变量"后面跟一个放在括号中的初始值或表达式。**【注意】每个成员变量在初始化列表中只能出现一次(初始化只能初始化一次)类中包含以下成员,必须放在初始化列表位置进行初始化:引用成员变量const成员变量自定义类型成员(该类没有默认构造函数)尽量使用初始化列表初始化,因为不管你是否使用初始化列表,对于自定义类型成员变量,一定会先使用初始化列表初始化。成员变量在类中声明次序就是其在初始化列表中
2021-03-28 22:08:09
102
原创 类的对象
构造函数:构造函数是一个特殊的成员函数,名字与类名相同,创建类类型对象时由编译器自动调用,保证每个数据成员都有 一个合适的初始值,并且在对象的生命周期内只调用一次。其特征如下:(1) 函数名与类名相同。(2)无返回值。(3)对象实例化时编译器自动调用对应的构造函数。(4)构造函数可以重载。(5) 如果类中没有显式定义构造函数,则C++编译器会自动生成一个无参的默认构造函数,一旦用户显式定义编译器将不再生成。(6)无参的构造函数和全缺省的构造函数都称为默认构造函数,并且默认构造函数只能有..
2021-03-16 09:00:23
145
原创 类
1.类的引入C语言中,结构体中只能定义变量,在C++中,结构体内不仅可以定义变量,也可以定义函数。2.类的定义class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号。类中的元素称为类的成员:类中的数据称为类的属性或者成员变量; 类中的函数称为类的方法或者成员函数。3.类的两种定义方式:声明和定义全部放在类体中,需要注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理。声明放在.h文件中,类的定义放在.cpp文件中4.1 访问限定符
2021-03-15 09:10:19
593
原创 内联函数和auto
一.C++中引入内联函数解决宏函数的缺陷。(预处理,不参与编译,无类型检测,不能调试)内联函数:以inline修饰的函数,编译时c++编译器会在调用内敛函数的地方展开,没有函数压栈的开销,提升程序运行效率。二.内联函数和宏函数的展开–>缺陷:会造成代码膨胀1.inline是一种以空间换时间的做法,省去调用函数开销,所以代码很长或者有循环或递归的函数不适宜内联函数。2.inline对编译器而言只是一个建议,编译器会自动优化,如果定义为inline的函数体内有循环或递归等,编译器优化时会忽略内
2020-12-06 18:30:40
109
原创 引用
1.c为什么不能函数重载:c编译器和c++对函数名字修改规则是不一样的;C编译函数在函数名前加_ 。int ADD()-> int _ADD()c++编译函数 e.g. int add(int left,int right) -> ?add@YAHHH@zdouble add(double left,double right) ->?add@@YANNN@zc++编译函数,会对函数名字修改,将参数类型加到最终名字中,extern "C"把代码按c语言风格编译。引用:概
2020-11-26 14:24:12
328
原创 缺省参数与函数重载
一.缺省参数:形参a和b都带有默认值用户用掉该函数时,没传参,就用默认值。传参就用所传值。1,分类:1.全缺省参数:每个参数都带有默认值void T(int a=1,int b=2,int c=3){cout<<“a=”<<a<<endl;cout<<“b=”<<b<<endl;cout<<“c=”<<c<<endl;int main(){T(); // 1 2 3T(10);
2020-11-21 18:11:13
277
原创 c++入门
1.命名空间namespace:(1),在同一个工程中,可以定义多个名字相同的命名空间,不会冲突,编译器会多个相同空间合并成一个(2),命名空间可以相互嵌套命名空间成员使用方式(1),名字::成员(2),若访问的成员使用频繁using N2::a场景: 对某个成员使用频繁, 相当于把a当做该文件中的一个全局变量来使用后,如果文件中也有a,则必然冲突。unsing namespace N2;场景: 将当前N2命名空间的所有成员当成该文件的全局变量,缺陷容易造成访问冲突2.C++的输入
2020-11-19 17:04:25
110
原创 数据的存储
1.构造类型:数组类型结构体类型 struct枚举类型 enum联合类型 union2.指针类型:int pi;char pc;float pf;void pv;3.空类型:void 表示空类型(无类型)通常应用于函数的返回类型、函数的参数、指针类型。原码、反码、补码计算机中的有符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是...
2019-12-10 22:43:02
98
原创 一个数组中只有两个数字是出现一次, 其他所有数字都出现了两次。 找出这两个只出现一次的数字,编程实现。
参考的方法是: 将所有元素异或,即为2个不同的元素的异或,找到第一个为1的位(不同),然后按照该位为1和为0 分为两个区域, 然后再^=自己该区域的数就可找到 不同的数(与找到第一个数是一样的)然后我在调试的时候发现 ,输入10 11 并未输出进行修改,发现是没有处理比特位第一位的问题。...
2019-12-01 18:57:26
267
原创 11.30
判断一个字符串是否为另外一个字符串旋转之后的字符串。例如:给定s1 =AABCD和s2 = BCDAA,返回1给定s1=abcd和s2=ACBD,返回0AABCD左旋一个字符得到ABCDAAABCD左旋两个字符得到BCDAAAABCD右旋一个字符得到DAABC创建 左旋右旋的函数进行调用建立一个判断是否成立的函数进行调用输出结果...
2019-11-30 20:35:27
149
原创 11.28
1.不使用(a+b)/2这种方式,求两个数的平均值。2.编程实现:一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。请找出这个数字。(使用位运算)...
2019-11-28 10:04:58
87
原创 11.27
有一个字符数组的内容为:“student a am i”,请你将数组的内容改为"i am a student".要求:不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)两个指针指向同一个数组,俩个指针相减值为所经历的元素个数,具体经历多少个数由指针类型决定。...
2019-11-27 16:48:21
91
原创 杨氏矩阵
在网上看了几种方法,这种是最好理解的。因为矩阵上到下 左到右 是一次递增的所以检测第一行最后一个元素即可排除第一行的。 最差的情况是从左上角一直比到右下角。关于杨氏矩阵具体解释点这里:https://blog.youkuaiyun.com/sgbfblog/article/details/7745450...
2019-11-25 21:59:47
114
原创 11.21
1,打印杨辉三角2.1.编写函数:unsigned int reverse_bit(unsigned int value);这个函数的返回值是value的二进制位模式从左到右翻转后的值。如:在32位机器上25这个值包含下列各位:00000000000000000000000000011001翻转后:(2550136832)10011000000000000000000000000...
2019-11-21 19:33:07
151
原创 11.17
1.获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。5个运动员参加了10米台跳水比赛,有人让他们预测比赛结果A选手说:B第二,我第三;B选手说:我第二,E第四;C选手说:我第一,D第二;D选手说:C最后,我第三;E选手说:我第四,A第一;比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。3.日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个...
2019-11-17 14:15:25
121
原创 扫雷游戏(第一次不被炸死实现)
声明文件game.hsshowboard 展示用户,Setmine 埋雷。Getcount计雷数。game.c 游戏实现main.c 程序实现game.c游戏实现,再分别调用函数雷盘,如果是n x n的盘,就要定义(n+2)x(n+2)的数组因为周围一个数周围有8个数,假设在位置(1,1)定义的数组就要有(0 ,0)计周围雷个数埋雷/*初始化函数memset(),要在g...
2019-11-15 17:33:14
326
原创 11.13
写一个函数返回参数二进制中 1 的个数比如: 15 0000 1111 4 个 1程序原型:int count_one_bits(unsigned int value){// 返回 1的位数}输出一个整数的每一位。3.编程实现:两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?输入例子:1999 2299输出例...
2019-11-13 20:56:36
126
原创 11.8
1.编写一个函数 reverse_string(char * string)(递归实现)实现:将参数字符串中的字符反向排列。要求:不能使用C函数库中的字符串操作函数。2.递归和非递归分别实现求n的阶乘3.递归方式实现打印一个整数的每一位...
2019-11-08 23:07:59
128
原创 11.5
1.递归和非递归分别实现求第n个斐波那契数。2.编写一个函数实现n^k,使用递归实现写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和,例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19...
2019-11-05 23:02:03
98
原创 11.1
1.创建一个数组,实现函数init()初始化数组、实现empty()清空数组、实现reverse()函数完成数组元素的逆置。要求:自己设计函数的参数,返回值。2.实现一个函数,判断一个数是不是素数。...
2019-11-01 22:20:15
98
原创 10.28
1.实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,输入9,输出99口诀表,输入12,输出1212的乘法口诀表。2.使用函数实现两个数的交换。3.实现一个函数判断year是不是润年。...
2019-10-28 23:01:20
98
原创 10.25
1.完成猜数字游戏。2.写代码可以在整型有序数组中查找想要的数字在这里插入图片描述3.编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出。...
2019-10-25 19:45:51
141
原创 10.21
将数组A中的内容和数组B中的内容进行交换。(数组一样大)计算1/1-1/2+1/3-1/4+1/5 ⋯⋯ + 1/99 - 1/100 的值。编写程序数一下 1到 100 的所有整数中出现多少个数字9。 ...
2019-10-21 18:15:14
158
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人