- 博客(93)
- 收藏
- 关注
原创 【C++】结构体排序+sort(),cmp()参数写法口诀
题目:从键盘输入10个学生的姓名和成绩,请按字典序排列学生的姓名并输出(姓名和成绩对应关系保持不变)[SLOJ1334]·结构体排序要加自定义比较函数cmp.此时①sort()函数参数写法:sort(数组起始,数组结尾的下一位置,比较函数)②自定义比较函数cmp()参数写法口诀:const类型引用名【重要】
2025-02-18 20:14:41
53
原创 【C++】【字符串】单词统计
23年题目核心处理版·给定一段英文,分隔符为空格,英文句号,英文逗号,编写程序输出该段英文,将单词分割出来,并统计和输出每个单词出现的次数.
2025-02-17 16:06:57
106
原创 【C++】【find()函数】查找全部子串个数
问题:查找全部子串个数·思路:反复调用string::find()函数·每次找到子串后,更新查找的起始位置,直到找不到(string::npos)为止
2025-02-16 19:19:44
107
原创 【C++文件读写操作】IO流读文件[程序和文件必须在同一文件夹]
郑书p505习题3:使用IO流以文本方式建立一个文件test1.txt(我存在了D盘的demo2文件夹下),注意程序和文件必须在同一文件夹下代码解释1.ofstream file("test1.txt");①创建一个ofstream对象file,用于写入文件②没有文件会自动创建文件;已有文件会覆盖原内容2. file<<"已成功写入文件"; ·将"已成功写入文件" 写入到 test1.txt文件
2025-02-14 19:18:47
184
原创 【题目3】C++类的设计——07年复试笔试题
【题目】07年C++复试笔试真题定义一个处理日期的类TDate,它有3个私有数据成员:Month,Day,Year和若干共有成员函数,实现如下要求[附条件解读]①构造函数重载→创建无参构造函数+有参构造函数 ②成员函数设置缺省参数→与④一同可用set()在类中实现 ③定义一个友元函数来打印日期→friend void print(TDate &date) 【注意友元函数的参数类型及个数】④定义一个非静态成员函数设置日期→与②一同可用set()在类中实现 ⑤可以用不同的构造函数来创建不同对象→
2024-11-17 22:06:42
221
原创 【C++派生类新增对象的初始化顺序】单继承下派生类新增成员对象的初始化顺序
单继承下派生类新增成员对象的初始化顺序(1)【意识】派生类新增成员对象也要初始化,千万别忘!(2)派生类构造函数执行顺序①调用基类构造函数②对派生类的新增成员对象初始化[调用顺序为类中声明顺序]③执行派生类本身的构造函数 (3)派生类析构函数执行顺序[与上构造调用顺序完全相反]【重要题目】07年复试笔试题 ·注意下面派生类中新增成员对象member m1 m2的初始化(子对象) ①需进行初始化,别忘! ②初始化的顺序:同类中声明顺序,与赋值顺序无关!
2024-11-17 17:06:13
156
原创 【408单口相声】改考408乱象的单口相声
闲来无事,瞎编了些改考408乱象的单口相声/脱口秀素材1【歌词改编】408来得太快就像龙卷风,不能承受我已无处可躲2【诗词改编】408高风怒号,卷我屋上三重茅3【书籍名言改编】起初,没有人在意这一次408改考,这不过是化学改考、文学改考、脐橙采摘农学改考、少数民族语言学改考…直到这场改考和每个人息息相关4【侧面描写】①麦克阿瑟评价道:408这股风席卷了整个工科,就连文学,教育学,外语之类也不放过,所到之处寸草不生②天气预报:2025年考研界变天,持续性阴天雨天,具体原因是从教育部及各省教育厅飘来的
2024-10-04 23:27:08
282
原创 【C++类的设计】题目(二):设计圆柱Column类
题目:设一个用于处理圆柱体的类Column,要求如下(1)类中包含成员有:表示圆柱体底面半径的私有数据成员r,表示圆柱体高的私有数据成员h;构造对象时为私有数据成员赋值的构造函数,用于计算圆柱体表面积的函数computArea,用于计算圆柱体体积的函数computeCubage (2)并设计相应的主函数对类Column进行测试。测试时输入圆柱体的底面半径和高,用它们构造Column对象,输出对应的圆柱体表面积和体积
2024-09-26 17:03:03
321
原创 【专题总结】【一文解决】C++多继承下的构造函数执行顺序
多继承下的构造函数执行顺序 派生类构造函数执行顺序如下①调用基类构造函数→调用顺序按它们被继承时【从左至右】被说明的次序②调用子对象的构造函数→调用顺序按它们在【类中说明次序】 ③调用派生类的构造函数 【典型题1】13浙工大卷二读程序4题 【分析】下面①classC:public A,public B时A左B右→故先调A构造再调B构造②B b,A a是子对象(类中定义的对象),类中先说明b再说明a→故先调B构造再调A构造③最后调派生类C构造
2024-09-25 12:46:33
439
原创 【一句话点破】【C++重要题目】基类与派生类的成员变量值被对象调用的结果(二)
【一句话点破】基类/派生类的成员变量由哪个对象初始化的,哪个对象调用该成员变量时就用由它初始化的值 [尤其找准是基类对象or派生类对象的值]
2024-09-24 12:35:38
491
原创 【区分】【重载vs覆盖】C++重载与覆盖
【区分】重载与覆盖(一)重载:指相同的范围中(例如一个类)不同的函数使用相同的函数名,但是函数的参数个数或类型或顺序不同①方法名必须相同 ②参数列表必须不相同,与参数列表的顺序无关 ③返回值类型可相同也可不同 【注意】返回值类型相同与否不能作为重载函数的依据 (二)覆盖:指同一个函数,同样的参数列表,同样的返回值,但是函数内部的实现过程不同 [继承/多态]·覆盖发生在派生类和基类之间,当派生类定义一个基类同名虚函数时,基类中的该函数被派生类中的同名函数所替换;覆盖主要用于实现多态 ①覆盖要
2024-09-24 09:51:16
357
原创 【C++代码运行结果测试】基类与派生类的成员变量值的调用结果(一)
【铺垫】派生类对象可被基类指针所指向,效果与被派生类指针指向等效 【代码测试1】
2024-09-23 18:21:39
211
原创 【总结】【C++类的设计要点】题目(一)一道十分典型的含继承与虚函数的类设计题
设计类时的要点1构造函数与析构函数:先在public中写上构造函数与析构函数 2成员函数:根据题目要求在public中声明成员函数;成员函数的实现在类内类外均可,注意若在类外实现时用::符号表明是哪个类的函数3数据成员:关注题目中出现/所需的名词,一般在private中【题目】分别定义一个shape类,rectangle类,circle类。shape类中有虚函数getPrim获取周长,在rectangle类和circle类实现各自的getPrim函数得到各自周长;并在main函数中测试
2024-09-12 11:12:36
253
原创 【考法总结】【AOE网】事件(+活动)最早/最晚发生(开始)时间+活动的时间余量【数据结构】
AOE网 关键路径 【事件最早/最晚发生(开始)时间】【活动最早/最晚开始时间】【活动的时间余量】 【铺垫】(1)区分AOE网与AOV网·AOE网的边表示活动,顶点表示事件;活动有持续时间,边有权值,AOE网用来求关键路径·AOV网的顶点表示活动,边表示活动间的先后关系;边无权值,AOV用来求拓扑排序(2)事件的最早(晚)开始时间≠活动的最早(晚)开始时间。其中最重要最基本的是先求出事件的最早(晚)开始时间·总结了下面几种设问/考法及实操策略
2024-08-19 13:03:56
927
原创 【原创总结】【图论】【无向图计算】无向图中有关点/边的计算结论及设问【数据结构】
无向图G=(V,E)有n个顶点 (1)可使G为连通的最少边数:n-1(2)保证G在任何情况下均连通的最少边数:(n-1)(n-2)/2+1(3)使G不连通的最大边数(n-1)(n-2)/2 [与(2)同理](4)变种设问:连通分量的最大值【例】有81个顶点和21条边的无向图的连通分量最多为多少【分析】要想连通分量最多,就要使图中孤立的点数量最多(每一个孤立的点都是一个连通分量)问题转为最少用多少点可连21条边,设用x个点.则有x(x-1)/2≥21,得xmin=7上面7个点作为1个连通分量,
2024-08-15 22:33:25
552
原创 【原创公式】【完全二叉树】叶结点的计算【数据结构】
完全二叉树叶结点的计算【铺垫】1叶结点即度为0的结点2完全二叉树中度为1的结点只可能有0或1个3完全二叉树的设叶结点仅可能出现在最后2层 ·设有完全二叉树T 【区分】第k层有a个叶结点≠第k层有a个结点(1)第k层有a个叶结点:T的形态不唯一,有2种可能,即完全二叉树T有k或k+1层(2)第k层有a个结点:T的形态唯一,T确定有k层
2024-08-15 22:29:18
546
原创 【原创】【C++多态】【虚函数】基类与派生类有同名函数时调用哪个
(一)背景引入:承接上面的情况3→设已创建基类指针指向派生类对象(如下)[注意此时只能引用基类成员;而不能访问基类没有,而派生类独有的成员],若基类与派生类有相同函数void g(),该调用哪个?
2024-07-28 17:36:38
454
原创 【原创】【C++继承】【总结】派生类对象隐式转换为基类对象
(一)背景引入尽管派生类对象也是基类对象,但派生类类型和基类类型是不同的。在公用继承(public继承)中,派生类对象能作为基类对象处理。由于派生类具有对应每个基类成员的成员(派生类的成员通常比基类成员多),故派生类的对象赋给基类对象是合理的;但若将基类对象赋给派生类对象,会使派生类中独有(基类没有)的成员无定义,故这是不允许的!(除非强制类型转换)(二)基类指针和派生类指针与基类对象和派生类对象的匹配的4种情况 (1)基类指针指向基类对象(2)派生类指针指向派生类对象(3)【常考】基类指针指向派
2024-07-26 11:50:51
264
原创 【C++重载运算符】【重载函数参数个数】题型:重载函数的参数个数判断
【题型】重载函数的参数个数·若重载为成员函数:参数个数=运算符目数-1 ·若重载为普通函数:参数个数=运算符目数 【注意】友元函数不是类的成员函数!视作普通函数 【问】如果将 [ ] 运算符重载成一个类的成员函数,则该重载函数有几个参数?【答】①先看运算符目数:[]代表数组取下标符,需要2个操作数如a[5]的a和5②再看重载函数类型(成员or普通函数):本题重载为成员函数,需-1。故参数个数=2-1=1
2024-07-25 09:13:08
241
原创 【原创】【C++重载运算符】【深拷贝/浅拷贝】【复制构造函数】深入剖析深拷贝与浅拷贝的本质区别
(一)角度一1深拷贝与浅拷贝的本质区别·浅拷贝:改指针的指向·深拷贝:改指针所指向空间里的内容2对象可以=(浅拷贝) 【铺垫】对象可以=。如有类S的成员变量有a,str,b.定义对象S s1,s2.若写s1=s2意思 就是让对象s1的成员变量=s2的成员变量,即s1.a=s2.a,s1.str=s2.str,s1.b=s2.b
2024-07-24 20:06:43
313
原创 【C++】【继承】【子对象】【构造函数】含子对象的派生类的构造函数写法
(1)子对象的概念:若派生类A1的数据成员中包含基类A的对象a,则a为派生类A1的子对象(2)含子对象的派生类的构造函数的执行顺序是:①调用基类构造函数,对基类数据成员初始化②调用子对象构造函数,对子对象数据成员初始化③执行派生类构造函数本身,对派生类数据成员初始化(3)含子对象的派生类的构造函数的一般形式:派生类构造函数名(总参数表):基类构造函数名(参数表),子对象名(参数表){派生类中新增数据成员初始化语句}
2024-07-23 15:10:31
296
原创 【总结】补码在运算中溢出的情况(单符号位补码+双符号位补码)
总结补码在运算中溢出的情况在此默认补码为有符号数A.单符号位补码【规律通用】不同则溢出 (一)移位运算补码右移不会溢出,仅左移时可能溢出【实操方法】看补码的高2位直接出结果:若高2位数(即符号位和最高数位)不相同[01或10],则左移会溢出(否则不溢出)(二)加减运算补码减法转为加法,后用补码加法的判断溢出方法,如下【实操方法】(1)直接看两数符号和+-若 ①2个同号数相减 或②2个异号数相加则一定不溢出(否则可能溢出)(2)符号位与数值位分别求和,看符号位与最高数位的进位值,若
2024-03-06 20:11:35
3274
7
原创 【原创】【一类问题的通法】【真题+李6卷6+李4卷4(+李6卷5)分析】合同矩阵A B有PTAP=B,求可逆阵P的策略
【铺垫】二次型做的变换与相应二次型矩阵的对应:二次型f(x1,x2,x3)=xTAx,g(y1,y2,y3)=yTBy①若f在可逆变换x=Py下化为g,即P为可逆阵,有PTAP=B;此时P来源于二次型f g代数配方的系数阵。A B合同 ②若f在正交变换x=Qy下化为g,即Q为正交阵,有QTAP=Q^(-1)AQ=B;此时Q来源于矩阵方法求A,B的特征值特征向量,产生的过渡正交阵Q,使得QTAQ=B。A B合同且相似 ·故若让求合同矩阵A B的可逆过渡阵P,使PTAP=B,P的构成来源可以是:A B对应
2023-12-10 11:10:58
3113
1
原创 【原创】【一类问题解决】有正定阵A,让求可逆阵R使得A=RTR(或A=RRT)的策略
【问题背景】有正定阵A,让求可逆阵R使得A=RTR(或A=RRT)的策略【法一】代数法:转二次型+配方【实操】构造A的二次型f=xTAx,将f在可逆变换x=Py下配方为规范型yTy(即=yTEy=y1²+y2²+y3²)〔即相应配方系数阵为P^(-1),也即配方时令y=P^(-1)x〕,此时有PTAP=E,则A=PT^(-1)P^(-1)①若让求可逆阵R使得A=RTR,可取R=P^(-1)②若让求可逆阵R使得A=RRT,可取R=P^(-1)T【法二】矩阵法:求特征值、特征向量【实操】求特征值
2023-12-09 21:18:07
731
原创 【22真题】【C代码】保留2位小数的函数
编写函数float fun(double x),使得x的值保留2位小数,并对第3位四舍五入(x中值为正数) ·fun函数代码如下```cdouble fun(double h){ double b=(int)(h*100)/100.0; printf("%lf\n",b); if((int)(h*1000)%10>=5){ b=(int)(100*h+1)/100.0; } printf("%lf\n",b); return b;}```
2023-11-13 19:35:12
284
原创 【进制转换代码】10进制转8进制与8进制转10进制
1.十进制转八进制代码如下```c#include#include #include using namespace std;int main(){ //十进制转八进制:除基取余法 int n,a[150]; int cnt=0; cin>>n; while(n){ a[cnt++]=n%8; n/=8; } cnt--; for(int i=cnt;i!=-1;i--){ co
2023-11-06 17:13:55
880
原创 【规律总结】【printf中\\\\n与\\\\输出结果规律】
1.结构为\\\..\\n时:结果中反斜杠\数量为里面\数÷2下取整,奇数不加\n,偶数加\n ·如printf("\\\\\\n"); →结果为\\\n(6个\,有\n;后面无回车) `如printf("\\\\\\\n"); →结果为\\\回车(因为7个\,7÷2下取整=3;后面再接一个回车) 2.结构为\\\..\\时:此时\数量只能为偶,输出结果为\数÷2·如 printf("\\\\\\");→结果为\\\(6个\,无\n)·已写至笔记√
2023-11-01 10:49:26
592
原创 【c代码】【字符串数组排序】
实现字符串数组由小到大排序代码如下·注意有句代码是strcpy(tmp,s[i]); →注意此是tmp和s[i]作比较,已调试√
2023-10-28 17:04:25
304
原创 【原创】指针变量作为函数参数要点注意+main函数中值是否改变
指针变量作为函数参数要点注意(已写至笔记)1传参指针不加*(main中函数)2收参指针要加*(被main调用的函数)3传参指针名可与收参指针名不同,不影响4【问】如何看主函数中指针所指内容是否改变【答】调用函数中若未在改变传入指针的指向值前改变指针指向(即未在改变*p前改变p指向),则主函数中指针所指内容会变 【例1】如下代码的swap函数交换了main中传入的数,指针变量作为函数参数往往都是想要达到这种效果
2023-10-28 12:12:34
222
原创 【原创干货图】一图解决2个模型:①键盘到文件的读写 ②文件到文件的读写
这图信息量巨大,揭示了2个场景①键盘到文件的读写 ②文件到文件的读写(一个文件的内容复制到另一个文件上)1从键盘向磁盘(文件)输入字符的读写方法及参数即getchar,fputc2将一个文件的信息以字符复制到另一个文件的读写方法及参数即fgetc,fputc3从键盘向磁盘(文件)输入字符数组的读写方法及参数即gets,fputs4将一个文件的信息以字符数组复制到另一个文件的读写方法及参数即fgets,fputs5上述12都需要一个字符ch作为过渡接收,34都需要字符数组(即字符串但c无此类型)
2023-10-27 23:14:24
74
转载 绝对路径与相对路径转化【原创理论模型+转载文章,理论模型+例子很好】
感悟与核心提取【模】规定:A/B/C/D,D文件的目录是A/B/C/,C文件的目录是A/B/【模型】仍如A/B/C/D:一个点(即.)代表上一个字母,一个/代表该字母后面加个/,即有/的才表示目录【实操】从最后一个字母出发,遇到一个点往前挪一个字母;遇到一个/在当前字母后面添/,若/后无内容则完成,若此/后还有内容则后退一个字母【理论1】../ 来表示上一级目录【例1】D的上级目录为A/B/(因为D本身的目录是A/B/C/):从D出发,2个点往前移2个字母到B,遇到/在B后添/,即为A/B/
2023-10-27 15:48:13
373
原创 【20字符串代码题】【strcat及strcpy用法注意】
·下面2种写法,注意写法2的for写法对;s=strcat(b,a)在main中未改s,不行(代码已调试好)·全局变量m是输入的参数,n是strlen的字符串长度
2023-10-24 12:02:51
158
原创 【17代码题】编写函数fun:比较两个字符串长度,返回长的字符串;若长度相等返回第1个字符串
【17代码题】编写函数fun:比较两个字符串长度,返回长的字符串;若长度相等返回第1个字符串 【注意】1.fun前加* 2. return时是return a,不是a[]或*a 3. 字符串遍历的涉及指针的写法 ·代码如下,已调试√
2023-10-24 10:23:04
167
原创 【原创】c语言4种字符串函数的代码测试
c语言4种字符串函数的代码测试1.字符串拼接strcat [contact] 2.字符串复制strcpy3.带参数的字符串复制strncpy4.字符串比较strcmp:比第一个不同字母的ascii码,如acb>abc
2023-10-24 09:43:17
86
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人