- 博客(54)
- 收藏
- 关注
原创 小区物业停车管理系统(实现多用户登录)
距离博客的发布,已经有三个月了,一想到当时是因为不认真听课,怕挂科,为了在课设这块多拿点分而被迫去参加答辩,就觉得很荒谬~ ,当时绞尽脑汁的想了一个星期,才勉强想到了停车场系统的一点设计思路,但是,在老师验收的前一刻却发现自己的程序少了一个功能没实现,结果又花了几天的时间修改,好在最后也是成功的改好了程序,做好了PPT,拿到了自己应得的那一份成绩。
2023-09-30 15:51:10
2920
2
原创 基础算法(排序、二分、高精度、前缀与差分、位运算...)
快速排序是由C. A. R. Hoare在1962年提出,对冒泡排序的一种改进,采用了一种分治的策略。通过一趟排序将要排序的数据分割成独立的两部分,其中一部分是所以数据都比另外一部分的数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到数据变成有序序列,平均状况下时间复杂度为O(nlogn)。分成子问题递归处理子问题子问题合并差分是求前缀和的逆操作,类似于数学中的求导和积分,对于原数组a[n],构造出一个数组b[n],使得a[n]为b[n]的前缀和。
2023-08-03 00:38:41
540
原创 数据结构课设(停车场管理系统的设计与实现)
设停车场只有一个可停放几辆车的狭长通道,只有一个大门可供汽车出入。汽车在停车场内按车辆到达的先后顺序依次排列,若车场内已经停满了几辆车;则后来的汽车只能在门外的便道上等候,一旦停车场内有车辆开走,则排在便道上的第一辆汽车即刻进入
2023-06-05 10:21:44
17208
10
原创 数据结构与算法——队列的定义与运算
队列(Queue)简称队,它同栈一样,也是一种运算受限的线性表,其限制是仅允许在表的一段进行插入,而在另一端进行删除。我们吧进行插入的一段成为队尾(rear),进行删除的一端称为队头(front)。向队列中插入新元素称为入队或进队,新元素入队后又作为队尾;从队列中删除元素称为出队或离队,元素出队后,其后继元素成为新的队头元素。由于队列的插入、删除都是从队的一段进行的,每个元素必须以一定的顺序出队,即先进是元素先出队,所以也称队列为先进先出表(First In First Out,简称FIFO)。
2023-05-26 21:58:42
1311
1
原创 数据结构与算法——约瑟夫环
p=p->next;此时就已经找到了报数位m的人对应的结点以及他对应的前驱结点,让r指向p(准备释放结点p),输出p->info,让p=p->next,这时能够输出第一个出列的人,但为了后面继续查找(报数)并输出下一个出列的人,还得判断p、q两指针的位置并修改它们的指向:若p->next=NULL(即p为表尾),则head->next=p;2.开始报数直至m,此时找到了要出列的人对应的结点以及他的前驱结点,让p出列(输出p->info),让r指向p,准备释放,p、q仍然不为表尾,所以p=p->next;
2023-05-24 13:49:13
8721
2
原创 Hello-Agents 初识智能体(实现一个简单旅游推荐智能体)
在人工智能领域,智能体被定义为任何能够通过传感器(Sensors)感知其所处环境(Environment),并自主地通过**执行器(Actuators)采取行动(Action)**以达成特定目标的实体,如下图:环境:智能体所处的外部世界,如对于自动驾驶汽车来说,环境就是复杂的道路交通感知:智能体并非与环境隔离,它通过其传感器持续地感知环境状态,如摄像头、雷达或各种应用程序编程接口放回的数据流,都是其感知能力的延申行动:智能体需要采取行动来对环境施加影响,它通过执行器来改变环境的状态。
2026-05-03 09:38:32
555
原创 浙江华昱欣实习(4月23日~ 4月19日)
早上10点报道,是行政部门的小姐姐接待的我,她特别好,主动递给我一瓶水,然后开始讨论实习协议的事情,签了一堆的保密协议和公司物件的使用事项规定,然后,我的面试官(也是之后带我的导师)就过来接我到我们部分参观,认识了很多前辈,有博士大美女、硕士大哥哥,还有一个部门年龄最小的我(本科),大家都挺热情,组长也挺好。不过还是得吐槽一句,滨江区的房租是真的贵啊!今天在公司依旧是没啥事干,开通相关的权限,比如我们组的gitlab,git权限,熟悉巨灵训练流程,开通外网权限,然后就一直摸鱼直到下班,放双休了,开心。
2026-05-02 14:25:35
326
原创 研0上岸找实习面试经历
实习面试经历总结 2026年4月11日至19日期间,我投递了多家公司的实习岗位,共参加了6场面试。面试涉及AI开发、深度学习算法等方向,最终获得天津、武汉两家公司的正式offer和杭州一家公司的口头offer。 面试过程中,我遇到了典型的技术问题如激活函数作用、BN层原理、自注意力机制等,也针对项目经历进行了深入讨论。在浙江华昱欣的面试中,面试官对我的编程能力和算法基础给予了肯定,同时也建议我丰富简历中的项目展示。最终我选择了杭州的口头offer,推掉了其他面试机会。
2026-04-23 21:46:35
600
2
原创 Web开发技术大作业(HTML\CSS\PHP\MYSQL\JS)
本次实验旨在掌握并熟练运用Web开发技术,提高自己的编程能力,同时通过实际操作加深对Web开发技术的理解。介绍永州的独特环境和地理位置、美食、旅游等等,并使用视觉化手段进行展现。通过使用HTML、CSS、JavaScript和PHP等编程语言展示永州的文化、历史和特色,提高人们对永州的认知。通过实验了解和掌握HTML、CSS、JavaScript和PHP在网页开发中的应用。
2024-06-17 13:30:29
1654
原创 3月27日 - 嵌入式系统调研报告
嵌入式系统的发展历程可以分为四段:20世纪60年代。当时,计算机技术还处于早期阶段,主要应用于科研和军事领域,比如:20世纪70年代,随着计算机技术的发展,嵌入式系统开始应用于更多的领域,如通信、汽车和电子设备。这些嵌入式系统通常是基于单片机或单板计算机构建的,比如:20世纪80年代,随着微处理器技术的快速发展,嵌入式系统的规模和复杂度不断增加。这个时期,嵌入式系统开始应用于更多的消费电子产品、工业自动化和医疗设备,比如:21世纪,随着网络技术和无线通信技术的迅猛发展,嵌入式系统在物联网领域得到广泛应用。物
2024-03-25 18:34:44
1592
原创 浅谈C++的函数重载
对于一组函数,在其函数名都相同、参数列表的数目或类型不同的前提下,加上它们都属于同一个作用域中,那么我们就可以把它们称作函数重载。即,如下常见的比较重载函数,分别用于intdouble之间的大小比较。
2024-03-18 01:18:38
476
原创 浅谈C++绑定器bind1st、bind2nd和函数对象function
今天我们先来谈谈C++ 标准库里面的绑定器bind1stbind2nd和函数对象function。
2024-03-15 13:19:09
1384
原创 浅谈C/C++的new和delete以及对象池的实现
今天我们来谈谈C++中的new和delete😊😊😊。在软件开发中,常常需要动态地分配和撤销内存空间,C语言中利用库函数malloc和free分配和撤销内存空间的。
2024-03-15 12:17:39
555
原创 浅谈C++的浅拷贝和深拷贝问题
在C++中,浅拷贝和深拷贝是两种对象复制的方式,其中🐱浅拷贝(Shallow Copy)是指将一个对象的指赋值到另一个对象中,但只赋值对象的成员变量的值,并不对复制对象的动态分配内存(如堆内存)等外部资源,这也就意味着当原对象修改自己指向的外部资源时,可能会影响到另一个对象;这块的话其实也是浅拷贝问题的一种,因为我们没有在类中自定义赋值函数,C++编译器会调用它的默认赋值函数,做的也是数据的内存拷贝(即浅拷贝)。今天我们来谈谈C++的浅拷贝和深拷贝问题
2024-03-15 11:43:51
1675
1
原创 浅谈C/C++的常量const、指针和引用问题
今天我们来探讨C/C++中const、指针和引用的相关问题。这些概念是编程中的重要组成部分,它们的正确使用对于代码的可读性和可维护性至关重要。通过深入了解const的不可变性、指针的灵活性以及引用的简洁性,我们能够更好地掌握编程的精髓,并写出更加健壮和高效的代码
2024-03-15 11:38:56
959
原创 每日一面——C++11的新特性
左值引用是具名变量值的别名,而右值引用则是不具名(匿名)变量的别名。为了解决循环引用导致的内存泄漏,引入了弱指针weak_ptr,weak_ptr的构造函数不会修改引用计数的值,从而不会对对象的内存进行管理,其类似一个普通指针,但是不会指向引用计数的共享内存,但是可以检测到所管理的对象是否已经被释放,从而避免非法访问。C++11中增加了右值引用,右值引用关联到右值时,右值被存储到特定位置,右值引用指向该特定位置,也就是说,右值虽然无法获取地址,但是右值引用是可以获取地址的,该地址表示临时对象的存储位置。
2024-03-15 10:30:57
1094
原创 每日一面——虚拟继承、抽象类和四种类型转化
C++支持多继承,除了public、private、protected三中继承方式外,还提供虚拟继承 virtual ,如果类B和类C同时公有继承类A,而类D有多重继承类B、C,这这种方式被叫做菱形继承虚拟继承的情况下,无论基类被继承多少次,只会存在一个实体虚拟继承基类的子类中,子类会增加某种形式的指针,或者指向虚基类对象,或者指向一个相关的表格;
2024-03-13 15:17:19
965
原创 每日一面——成员初始化列表、移动构造和拷贝构造
移动操作的发生的时候,是当移动值的对象是未命名的对象的时候。有时候我们会遇到这样一种情况,我们用对象a初始化对象b后对象a我们就不在使用了,但是对象a的空间还在呀(在析构之前),既然拷贝构造函数,实际上就是把a对象的内容复制一份到b中,那么为什么我们不能直接使用a的空间呢?如果把拷贝构造函数的参数设置为值传递,那么参数肯定就是本类的一个object,采用值传递,在形参和实参结合的时候,是需要调用本类的拷贝构造函数,就形成一个死循环,是为了避免拷贝构造函数无线递归下去。必须使用成员初始化的四种情况。
2024-03-12 22:19:26
1229
原创 每日一面——封装、继承和多态
面向对象是一种编程思想,把一切东西看出是一个个对象,它们各自有各自的属性,把这些对象拥有的属性变量和操作这些属性的函数打包成一个类来表示面向对象和面向过程的区别面向过程:根据业务逻辑从上到下写代码面向对象:将数据与函数绑定到一起,进行封装,这样能够快速的开发程序,减少重复代码的重写过程。
2024-03-10 22:30:55
1050
1
原创 每日一面——虚函数、动态绑定、静态绑定
但是在对象创建的过程中,由于对象还没有完全构造成功,因此在构造函数和析构函数中不能使用虚函数,这是因为在对象构造期间,虚函数表尚未构建,而且对象还没有完成其完整的初始化。同样,派生类构造函数也不能是虚函数,因为派生类的构造函数必须调用其基类的构造函数,如果基类的构造函数是虚函数,将无法保证正常的顺序。因此,类的构造函数不能是虚构函数。2)析构函数可以被声明为虚函数,因为当基类指针指向派生类对象的时候,发生多态,如果不将基类的析构函数定义为虚函数的话,那么派生类的析构函数就无法执行,造成内存泄露。
2024-03-09 20:36:08
848
2
原创 每日一面——const关键字
对于函数值传递的情况,因为参数传递是通过复制实参创建一个临时变量传递进函数的,函数内只能改变临时变量,但无法改变实参。但是在引用或指针传递函数调用中,因为传进去的是一个引用或指针,这样函数内部可以改变引用或指针所指向的变量,这时const 才是实实在在地保护了实参所指向的变量。底层const:指的是const修饰的变量所指向的对象是一个常量,指的是所指变量,就是 * 号的左边。顶层const:指的是const修饰的变量本身是一个常量,无法修改,指的是指针,就是 * 号的右边。
2024-03-07 08:14:20
708
原创 每日一面——static关键字
在c++中,static关键字可以用于定义类中的静态成员变量:使用静态数据成员,它既可以被当成全局变量那样去存储,但又被隐藏在类的内部。⑦ 由于static修饰的类成员属于类,不属于对象,因此static类成员函数是没有this指针的,this指针是指向本对象的指针。正因为没有this指针,所以static类成员函数不能访问非static的类成员,只能访问 static修饰的类成员;⑤ 在类中的static成员函数属于整个类所拥有,这个函数不接收this指针,因而只能访问类的static成员变量。
2024-03-06 08:14:08
697
原创 每日一面——inline关键字和include头文件
肯定包括,如上知,编译器可以选择调用内联函数,而非直接展开它。因此,在内存中仍然需要一份内联函数的定义,以供调用。而且,一致性是所有语言都应该遵守的准则,普通函数有可以有指向它的函数指针,那么内联函数也可以有,因此内存中需要。。。,使得函数指针可以存在内联函数是在编译是展开,而宏是在编译预处理时展开;在编译时,内联函数直接被嵌入到目标代码中去,而宏只是做了简单的文本替换。
2024-03-05 08:12:46
1298
原创 MySQL事务和锁机制
事务是数据库区别于文件系统的重要特征之一。在文件系统中,如果正在写文件,但是操作系统奔溃了,这个文件就很有可能被破坏。当然,有一些机制可以把文件回复到某个时间点。不过,如果需要保证两个文件同步,这些文件系统可能就显得无能为力了,例如,当需要更新两个文件时,更新完一个文件后,在更新完第二个文件之前系统重启了,就会产生两个不同步的文件,因此这也就是数据库系统引入事务的主要目的。
2024-03-02 18:22:13
1431
原创 MySQL存储引擎及索引机制
插件式存储引擎是MySQL数据库最重要的特性之一,用户可以根据应用的需要选择如何存储和索引数据、是否使用事务等。InnoDBMyISAMMemory等等,在mysql 的命令行窗口中,我们可以通过命令查看。
2024-02-29 07:49:34
1395
原创 【线程池项目(一)】项目介绍和代码展示
作为五大池之一(内存池、连接池、线程池、进程池、协程池),线程池的应用非常广泛,不管是客户端程序,还是后台服务器程序,都是提高业务处理能力的必备模块。在高并发场景下,系统能够更加稳定地处理大量任务。
2024-02-21 14:52:13
1676
原创 (二)模板元编程简介
元编程(meta-programming)也被称为“超程序”,“超编程”或“产生式编程”,这样说法一定程度上反映了其本质——它是一种位于普通程序之上、超越普通程序的程序,可以操纵、产生程序的程序。模板元编程本质上是泛型编程的一个子集,从广义上来说,所有使用template 的泛型代码都可以称作元程序——因为泛型编程代码并不是真正可编译执行的代码,它们只是定义了代码的产生规则,是用来生成代码的“模板”。然而模板元编程又不完全等同于泛型编程,它是一种“函数式编程”,是图灵完备的,可以“计算”任何东西。
2024-01-07 11:48:06
1801
原创 (一)全新的C++语言
C++ 的最初目标就是成为 “更好的 C”,因此新的标准首先要对基本的底层编程进行强化,能够反映当前计算机软硬件系统的最新发展和变化(例如多线程)。另一方面,C++对多线程范式的支持增加了语言的复杂度,通常一个范式就相当于其他的一门编程语言,学习难度大。保持稳定性和兼容性尽量使用库而不是扩展语言来增加新特性对初级用户和高级用户都能提高良好的支持增强类型的安全性增强直接操作硬件时的效率和功能新的C++11/14 标准基本实现了这些目标,而且依然较好地保持了与之前版本的兼容性。
2024-01-06 09:10:57
1047
原创 Codeforces Round 913 (Div. 3)
这题根据贪心策略分析可知,无论字符串的形式如何变化,最终结果定是0或1中的一个,我们可以先求出该字符串中每个字符的出现次数,找到最大的那个cnt,要是cnt * 2 >= n说明该字符串最多最多就只能用剩下的其他字符消去,即res = cnt - (n - cnt);这当时想了很久,后面突然发现可以开两个vector 数组a, b ,a用来存输入的大写字母,b用来存小写字母,用 *.second 记录插入字母的时间顺序,最后排序输出即可。反之,遍历完返回1。
2023-12-07 15:45:34
471
原创 AtCoder Beginner Contest 297
C题是求在一个方阵里,每一行相邻的相同字符可以被替换掉,接着进行下一次查找,直至结束得到的最多可以被替换的数目。B题是对特定字符串的条件判断,这里依次记录每个位置然后判断是否满足。A题就是求第一次出现相邻元素之差大于d的位置,直接模拟即可。
2023-11-23 22:27:03
449
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅