- 博客(62)
- 收藏
- 关注
原创 【Linux】动静态库
此外动态链接被使用时,除了在编译时需要和静态库一样告诉编译器库地址,更要在程序运行时告诉生成的可执行程序其地址,那为什么系统官方库不需要告诉呢,其实不然,都是要告诉的,不过系统一般将官方库采用环境变量法,会默认自己配置好;回想链接操作是在告诉编译器动态库的位置,但我们知道动态库在被链接的时候只是在程序占了个位置,本身内容并没有被加入到可执行程序中,需要程序运行的时候再去自己找该部分内容,需要告诉程序你的库在哪里,也可以把你的库放入操作系统仿官方库的位置(不建议,会污染官方库),为地址空间的地址;
2024-05-01 21:40:42
1046
原创 【C++】类型转换
原因:编译器优化,它对const变量认为不会变,故而直接加载到了寄存器(有的编译器直接用宏那种处理方式直接替换,如vs),读的时候它会去寄存器去取(即使a的值在内存中已被修改);通过监视发现,明明end变成-1,但循环仍会进去,这里其实就是比较的时候发生了隐式类型转换,比较的时候end由int变为unsigned int;此时C++后来在这里做了一些新的方法(旧的不能改)------四种类型转换,接着往下看…可见C语言的写法也会将切片的偏移量在向回转的时候,跳回去且不受虚函数限制;
2024-04-27 12:16:57
589
原创 【C++】抽象类 与 C++
若子类没有实现纯虚函数,则子类成为抽象类。. 派生类必须实现纯虚函数的具体功能。. 纯虚函数被实现后成为虚函数。. 抽象类只能做基类被继承。
2024-04-25 20:36:26
212
原创 计算机网络1-TCP和UDP
同:都工作在传输层,目标都是在程序间传输数据(文本、视频等等),都是2进制数据;区别:TCP:电话,基于连接,UDP:书信,基于非连接,
2024-04-19 16:54:51
806
原创 【C++】unordered_set和unordered_map
经检测,以上代码有个小bug,可能会导致数据打印时无法跳出迭代器,形成死循环打印;从逻辑上讲,HashTable应该给迭代器开放权限,如下设置一个友元类即可。在这里我们是不是应该对哈希表的大小取模,而不是对现在的有效数据个数取模。HashTable和其迭代器互相调用。代码实现标准化,实现[ ]重载。因为是模板故必须带参数。提示:错误点在该段代码中。
2024-04-16 19:23:14
198
原创 每日两题2
以上代码一可以返回正确答案;但存在错误修改闲置背包问题,逻辑思维不严谨;这道题只需要在上道题的基础上加一个障碍物判断即可,代码实现也是如此。<这里的映射关系非常重要>注意:注意这里的映射关系。
2024-04-16 15:21:36
277
原创 【C++】哈希
在C++98中,STL提供了底层为红黑树结构的一系列关联式容器,在查询时效率可达到logN,即最差情况下需要比较红黑树的高度次,当树中的节点非常常多时,查询效率也不理想。最好的查询是,进行很少的比较次数就能够将元素找到。在C++11中,STL又提供了4个unordered系列的关联式容器,这四个容器与红黑树结构的关联式容器使用方式基本类似,只是其底层结构不同。unordered_xxx系列与map和set容器的用法上几乎没有任何区别;
2024-04-12 17:08:19
840
2
原创 【C++】函数模版(1)
以上代码表示交换相同数据类型的两个数据,虽然C++支持函数重载,但这种写法重复性的工作太多,以上数据除了数据类型不无二致,我们何不自己写一个函数模版,让其编译器根据数据类型自己去匹配呢?4.使用函数模板时,如果是自动类型推导,不会发生隐式类型转换,如果显式指定了函数模板的数据类型,可以发生隐式类型转换。编译的时候,编译器推导实参的数据类型,根据实参的数据类型和函数模板,生成该类型的函数定。3.使用函数模板时,推导的数据类型必须适应函数模板中的代码。6.函数模板支持重载,可以有非通用数据类型的参数。
2023-10-30 17:29:00
78
原创 21. 合并两个有序链表
通过思考,链表已经是栈中的数据,我们只需要将其连接起来,不用在函数初始时申请空间。当有一个空链表传入时,应该返回另一个不为空的链表,但该版本代码直接返空;所标部分的list可能为空,故不能在使用其next的值;原因:list1、list2本身可能为空,需要先判断。改进:简单粗暴,直接和ret一起判断是否为空。测试用例全部通过,但提交代码仍显示执行错误;
2023-10-17 16:36:29
55
原创 【Java初阶】熟悉ide环境
class字节码文件(二进制文件)cd 进入某文件dir 查看当前目录的文件jva虚拟机有class,到处运行字符串数组,数组名为args(也就是说args可以改),java的数组写法与C语言有所区别;类似于C语言的args.length是java自动求得数组元素个数,不用像C语言一样求得其大小,这也算是java的神奇之处,在控制台情况下可以传参,ide环境暂时不会,执行会打印出:nihao。
2023-10-10 13:15:21
41
原创 数据库(基础篇)挑战(1)搭建一个简易的成绩管理系统的数据库
现需要构建一个简易的成绩管理系统的数据库,来记录几门课程的学生成绩。数据库中有三张表分别用于记录学生信息、课程信息和成绩信息。数据表结构如下:学生表(student):学生 id 、学生姓名和性别课程表:课程 id 和课程名成绩表:成绩 id 、学生 id 、课程 id 和分数。
2023-09-24 22:45:00
635
原创 数据库(基础篇)<2>创建数据库并插入数据
经过本次实验,已经有了一个名为 mysql_shiyan 的数据库,其中有两张表,已经向其中插入了一些数据。务必完整地操作一遍,以熟练 SQL 语句的使用。下一节我们将进入 SQL 约束的学习。
2023-09-24 19:45:00
815
原创 数据库(基础篇)<3>SQL的约束
本节实验中通过一个数据库实例了解了主键、默认值、外键、非空、唯一这几种约束的特性,这几种约束都是最常见的,需要仔细理解每种约束的含义及使用场景。
2023-09-24 19:45:00
74
原创 【C语言】预处理
int main()//编译时的信息return 0;int main()//编译时的信息 写入日志文件//追加if (!pf)fopen");return 1;//写文件//关闭文件fclose(pf);pf = NULL;return 0;在VS中实行预处理到文件,打开生成的.i文件注意:1.定义语句后面不要加;可以替换参数(Linux环境操作较为方便;许多C的编译器提供了一种能力,允许在命令行中定义符号。用于启动编译过程。
2023-08-29 23:40:07
41
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人