- 博客(35)
- 收藏
- 关注
原创 c++(map和set)
• set的声明如下,T就是set底层关键字的类型• set默认要求T⽀持⼩于⽐较,如果不⽀持或者想按⾃⼰的需求⾛可以⾃⾏实现仿函数传给第⼆个模版参数• set底层存储数据的内存是从空间配置器申请的,如果需要可以⾃⼰实现内存池,传给第三个参数。• ⼀般情况下,我们都不需要传后两个模版参数。• set底层是⽤红⿊树实现,增删查效率是 ,迭代器遍历是⾛的搜索树的中序,所以是有序的。O(logN)
2024-10-19 14:58:56 536
原创 蓝桥杯备赛(c/c++)
排序9. 实现选择排序10. 实现插入排序11. 实现快速排序12. 实现归并排序13. 实现基数排序14. 合并排序数组
2024-10-10 19:53:55 6460 1
原创 c++(多态)
基类的析构函数为虚函数,此时派⽣类析构函数只要定义,⽆论是否加virtual关键字,都与基类的析构函数构成重写,虽然基类与派⽣类析构函数名字不同看起来不符合重写的规则,实际上编译器对析构函数的名称做了特殊处理,编译后析构函数的名称统⼀处理成destructor,所以基类的析构函数加了vialtual修饰,派⽣类的析构函数就构成重写。虚函数的重写/覆盖:派⽣类中有⼀个跟基类完全相同的虚函数(即派⽣类虚函数与基类虚函数的返回值类型、函数名字、参数列表完全相同),称派⽣类的虚函数重写了基类的虚函数。
2024-10-09 13:20:25 1067
原创 c++(继承)
目录继承的概念 继承⽗类成员访问⽅式的变化继承类模板按需实例化问题宏替换 ⽗类和⼦类对象赋值兼容转换---切割继承中的作⽤域隐藏规则:编辑 继承---题目理解编辑⼦类的默认成员函数1.构造函数编辑2.拷贝构造 3.赋值重载 4.析构函数 实现⼀个不能被继承的类继承与友元编辑继承与静态成员多继承及其菱形继承问题1.继承模型编辑2.虚继承(解决菱形继承问题)----解决数据二义性3.多继承中指针偏移问题继承和组合1.父类的private在子类中不可访问,但可以间接访问需要标明类域, 实例化
2024-09-13 14:03:10 800
原创 c++(list)
双向:list/map/set(二叉树结构)... ++/--随机:vector/string/deque(连续的物理空间).. ++/--/+/-lt.sort(greater());find(input迭代器--只读--可传任意类型迭代器)链表合并(前提:两个链表有序)取小尾插。一个链表的节点转移到该链表某一位置。底层结构----决定使用哪些算法。sort(随机迭代器)链表合并(merge)
2024-09-03 13:26:10 819
原创 Linux(指令)
win界面----os开始时,都是黑屏终端+指令操作Linux也有图形界面----desktop os-----终端+指令操作。
2024-08-17 21:21:55 966
原创 数据结构(排序)
R遇L:R先走,找小,没有找到比key小的,直接跟L相遇了,L停留的位置是上一轮交换的位置,上一轮交换,把比key小的值换到了L的位置。L遇R:R先走,停下来,R停下来的条件是遇到比key小的值,R停的位置比key小,L没有找到比key大的,遇到R就停下来了。gap越小,跳的越慢,但是越接近有序,当gap==1相当于插入排序就有序了。时间复杂度:O(N^2) 最坏情况:逆序(每次挪动的数据都比上一个小)gap越大,大的可以越快跳到后面,小的数可以越快跳到前面。时间复杂度: O(N^2) (好,坏情况)
2024-08-16 22:59:04 360
原创 字符函数和字符串函数
如果相等就继续往后⽐较,最多⽐较num个字⺟,如果提前发现不⼀样,就提前结束,⼤的字符所在的字符串⼤于另外⼀个。如果source指向的字符串的⻓度⼩于num的时候,只会将字符串中到\0 的内容追加到destination指向的字符串末尾。• strtok函数的第⼀个参数不为 NULL ,函数将找到str中第⼀个标记,strtok函数将保存它在字符串中的位置。• strtok函数的第⼀个参数为 NULL ,函数将在同⼀个字符串中被保存的位置开始,查找下⼀个标记。
2024-08-09 00:14:07 610
原创 vs调试技巧
Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序;Release称为发布版本,它往往是进⾏了各种优化,使得程序在代码⼤⼩和运⾏速度上都是最优的,以便⽤户很好地使⽤。编译⽣成的可执⾏⽂件的⼤⼩,release版本明显要⼩,⽽debug版本明显⼤。
2024-08-08 23:19:45 435
原创 Linux(初学)
1945.2.14 埃尼阿克(第一台计算机)(军事用途)摩尔定律(计算机小型化,高性能化)摩尔定律是英特尔创始人之一戈登·摩尔的经验之谈,其核心内容为:集成电路上可以容纳的晶体管数目在大约每经过18个月到24个月便会增加一倍。换言之,处理器的性能大约每两年翻一倍,同时价格下降为之前的一半。计算机私人公司(面向企业的大型计算机--IBM)(面向个人的计算机--Apple,Microsoft,英特尔)(联想)个人计算机发展---计算机+互联网---pc互联网时代---手机+互联网---移动互联网。
2024-08-06 20:43:43 813
原创 c语言基础知识
为了防⽌这种情况,使⽤ %s 占位符时,应该指定读⼊字符串的最⻓⻓度,即写成 %[m]s ,其中的 [m] 是⼀个整数,表⽰读取符串的最⼤⻓度,后⾯的字符将被丢弃。sizeof中表达式不计算(sizeof 在代码进⾏编译的时候,就根据表达式的类型确定了,类型的常⽤,⽽表达式的执⾏却要在程序运⾏期间才能执⾏,在编译期间已经将sizeof处理掉了,所以在运⾏期间就不会执⾏表达式了)\0 :null字符,代表没有内容, \0 就是 \ddd 这类转义字符的⼀种,⽤于字符串的结束标志,其ASCII码值是0.
2024-08-01 21:05:25 1893
原创 数据结构(链表题)
203. 移除链表元素206. 反转链表876. 链表的中间结点21. 合并两个有序链表CM11 链表分割OR36 链表的回文结构160. 相交链表141. 环形链表142. 环形链表 II138. 随机链表的复制链表链表与程序员相关的CPU缓存知识
2024-07-31 21:37:33 221
原创 数据结构(复杂度)
推导大O阶方法:1、用取代运行时间中的。2、在修改后的运行次数函数中,只。3、如果最高阶项存在且不是1,则。得到的结果就是大O阶。
2024-07-28 19:08:16 218
原创 c++(模版)
2. 对于非模板函数和同名函数模板,如果其他条件都相同,在调动时会优先调用非模板函数而不会从该模板产生出一个实例。1. 一个非模板函数可以和一个同名的函数模板同时存在,而且该函数模板还可以被实例化为这个非模板函数。显式实例化:在函数名后的中指定模板参数的实际类型 Add(a1, d1)隐式实例化:让编译器根据实参推演模板参数的实际类型 Add(a1, (int)d1)在编译器编译阶段,对于模板函数的使用,编译器需要根据传入的实参类型来推演生成对应。class 类模板名。
2024-07-28 10:46:52 377
原创 每日习题一练
实现一个算法,确定一个字符串s的所有字符是否全都不同。falses= "abc"true暴力求解建表标记思想ascll字符的ascll值都不会超过255,定义一张表标记出现的字符,如果在进行标记时发现已经被标记过了,则重复,节省了时间。
2024-07-26 23:09:23 217
原创 c++(string)
解决方案:a.内联(inline)/静态(static)只在当前文件呈现。查找在str1中的str2,找到则返回str2在str1中的指针。
2024-07-26 11:04:03 419
原创 C语言(操作符及数据在内存段的存储)
八进制每一位都是0~7,各自写成二进制最多三个二进制位就够了,故二进制转八进制,从二进制序列右边每三个二进制位换算一个八进制位,剩余不够三个直接换算。二进制转十六进制,从二进制序列右边每四个二进制位换算一个十六进制位,剩余不够四个直接换算。原因在于,使⽤补码,可以将符号位和数值域⼀。原码:直接将数值按照正负数的形式翻译成⼆进制得到的就是原码。(规则的选择取决于编译器,大部分编译器算术右移,vs算术右移)反码得到原码也是可以使⽤:符号位不变其他位取反,+1的操作。位,剩余的都是数值位(符号位都是⽤。
2024-07-23 11:36:51 684
原创 c++初阶
namespace num //命名空间域int main()//访问头文件中rand()的地址//输出命名空间域rand的值return 0;命名空间只能用“域名::变量名”的格式访问---------若无命名空间查找符,则查找顺序:a.局部域 b.全局域。
2024-07-09 12:00:20 298
原创 c语言(动态内存管理)
函数向内存申请⼀块连续可⽤的空间,并返回指向这块空间的指针1.开辟成功,则返回⼀个指向开辟好空间的指针2.开辟,则⼀个malloc的返回值⼀定要做检查3.返回值的类型是 void*,malloc函数并不知道开辟空间的类型,具体在使⽤时来决定4.参数 size 为0时,malloc的⾏为是标准是未定义的,取决于编译器。
2024-02-02 20:43:14 1092
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人