- 博客(54)
- 收藏
- 关注
原创 C++多态原理
虚函数表(vTable)编译时生成存储虚函数地址每个类一份,所有对象共享虚表指针(vPtr)每个对象独有位于对象内存起始位置构造函数中初始化动态绑定机制通过指针/引用调用虚函数运行时查虚表确定实际函数实现"一个接口,多种实现"
2025-08-06 15:57:12
360
原创 C++继承
继承允许新类(派生类)基于现有类(基类)创建,保留基类特性并扩展新功能。这实现了类设计层次的代码复用。在上述代码中,继承后基类Person的成员(成员函数和成员变量),都会变为派生类Student的一部分,体现了Student对Person的复用。核心规则:3. 作用域与隐藏同名成员会形成隐藏(重定义):重要:成员函数只需函数名相同即构成隐藏,与参数无关!三、继承VS组合 特性 继承 组合 关系类型 is-a(学生是
2025-07-31 21:31:58
421
原创 只出现一次的数字
给你一个整数数组nums,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。思路:使用异或运算'^'
2025-07-03 21:35:10
672
原创 初始化列表、静态成员、友元
因为A支持用int去构造,所以可以用int类型去构造,同时3是内置类型,不能直接去构造自定义类型,所以需要用3去构造一个临时的自定义类型,再用这个临时的自定义类型去拷贝构造。中,语法上,3会首先构造一个A的临时对象(A(int a)),再将这个临时对象拷贝构造aa3(A(const A& aa)),但当编译器遇到构造+拷贝构造时,会优化为直接构造(A(int a))。可以直接访问类的私有成员,它是定义在类外部的普通函数,不属于任何类,但需要在类内部声明,声明时需要加friend关键字.
2025-06-17 20:18:34
693
原创 赋值运算符重载
运算符重载是一种特殊的函数,通过operator参数是操作符的操作个数,如:比较大小使用双操作符,解引用、取地址、++、--使用单操作符。eg:判断是否相等在上述函数中,将运算符重载成全局,为了访问私有成员,将private改为public,对程序的封装性不友好。
2025-06-13 15:42:48
576
原创 JZ11 旋转数组的最小数字
有一个长度为 n 的非降序数组,比如[1,2,3,4,5],将它进行旋转,即把一个数组最开始的若干个元素搬到数组的末尾,变成一个旋转数组,比如变成了[3,4,5,1,2],或者[4,5,1,2,3]这样的。请问,给定这样一个旋转数组,求数组中的最小值。数据范围:1≤n≤10000,数组中任意元素的值: 0≤val≤100000要求:空间复杂度:O(1) ,时间复杂度:O(logn)
2025-06-06 11:08:46
148
原创 HJ97 记负均正
对于给定的 n 个整数 a1,a2,⋯ ,an统计并计算:∙ ∙负整数的个数;∙ ∙正整数的平均值。输入描述:第一行输入一个整数 n(1≦n≦2×10^3) 代表整数的个数。第二行输入 n个整数 a1,a2,…,an(−10^3≦ai≦10^3)代表输入的整数。输出描述:先输出一个整数,代表负整数的个数;随后在同一行输出一个实数,代表正整数的平均值。题目分析题目要求统计给定整数序列中负整数的个数,并计算正整数的平均值。注意:0既不是负数也不是正数,应被忽略.
2025-06-06 10:58:20
312
原创 C++入门基础
核心目的:创建独立作用域,避免名称污染。1.基本定义语法namespace NamespaceName { // 命名空间名称(通常用项目名/模块名)// 成员列表(可包含任意合法标识符)// 变量// 函数// 类// 结构体2.嵌套命名空间支持多层命名空间,解决复杂模块的命名冲突。namespace Core { // 内层命名空间namespace GUI { // 同级命名空间3.跨文件合并特性同一工程中同名命名空间自动合并。
2025-06-04 23:37:11
970
原创 【无标题】
等差数列的特点是每一项与前一项的差为固定常数(公差)。对于首项为 2,公差为 3 的等差数列,求前 n 项的和。的计算公式:ai=a0+(i−1)×d。输入一个整数 n(1≦n≦103)。输出一个整数,代表前 n 项的和。
2025-06-04 10:21:14
246
原创 HJ76 尼科彻斯定理
∙ ∙对于 n=4n=4,数列 {13,15,17,19}{13,15,17,19} 的和为 43=13+15+17+1943=13+15+17+19。∙ ∙对于 n=3n=3,数列 {7,9,11}{7,9,11} 的和为 33=7+9+1133=7+9+11;n=4:首项 =4*4−4+1=13=42−4+1=13,数列为 {13,15,17,19}∙ ∙对于 n=2n=2,数列 {3,5}{3,5} 的和为 23=3+523=3+5;根据公式 a0=n*n−n+1确定数列的第一个数。
2025-06-04 10:17:22
127
原创 JZ17 打印从1到最大的n位数
输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。循环i从0到total-1将数字i+1簇内res[i],避免越界。1: 这里returnSize是需要打印个数的变量的指针。输出:[1,2,3,4,5,6,7,8,9]2: 需要返回一个数组首元素的地址。:malloc分配的内存空间。:通过for循环计算最大值。
2025-06-03 10:53:54
125
原创 HJ73 计算日期到天数转换
每一年中都有 1212 个月份。其中,1,3,5,7,8,10,121,3,5,7,8,10,12 月每个月有 3131 天;4,6,9,114,6,9,11 月每个月有 3030 天;而对于 22 月,闰年时有 2929 天,平年时有 2828 天。现在,对应输入的日期,计算这是这一年的第几天。一个年份是闰年当且仅当它满足下列两种情况其中的一种:∙ ∙这个年份是 44 的整数倍,但不是 100100 的整数倍;∙ ∙这个年份是 400400 的整数倍。
2025-06-03 10:39:34
364
原创 机器人运动学(1)
使用移动和转动来描述刚体的运动状态,介绍了旋转矩阵的三种用法、Fixed Angle 和 Euler Angle 旋转方式,并将移动和转动整合为转换矩阵。
2025-05-17 13:25:26
200
原创 搜索插入位置
题目:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。方法:利用二分法在排序数组中寻找目标值。
2025-01-09 11:24:40
133
原创 例题 二叉树
思路:若两二叉数全为空,则一定相等。若只有一个为空,则一定不等。若都不为空,节点不同则一定不相等。若节点相等,比较两叉树是否相等。,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。给你两棵二叉树的根节点。
2025-01-08 11:11:39
231
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人