自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(344)
  • 收藏
  • 关注

原创 NO.19|操作系统|进程空间|并发并行|线程协程|fork|僵尸进程|守护进程|进程通信|进程同步|进程调度算法|进程状态|mmap|互斥量|常见信号|线程通信|线程同步|死锁|进程线程对比

孤儿进程:是指一个父进程退出后,而它的一个或多个子进程还在运行,那么这些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并且由init进程对它们完整状态收集工作。僵尸进程:是指一个进程使用fork函数创建子进程,如果子进程退出,而父进程并没有调用wait() 或者waitpid()系统调用取得子进程的终止状态,那么子进程的进程描述符仍然保存在系统中,占用系统资源,这种进程称为僵尸进程。

2025-04-01 22:18:38 323

原创 NO.60十六届蓝桥杯备战|基础算法-差分|一维差分|海底高铁|二维差分|地毯(C++)

解法2:利用差分数组解决问题,快速解决将某一个区间所有元素统一加上一个数的操作差分模板题,先「创建」差分数组,然后根据差分数组的「性质」处理q次区间修改,最后「还原」出来原始的数组。⼆维差分模板题,先根据差分矩阵的「性质」创建差分矩阵,然后根据差分矩阵的「性质」处理q次区间修改,最后利⽤「前缀和」还原出来原始的矩阵。因此,重点就是差分矩阵的「性质」。前缀和与差分的核⼼思想是预处理,可以在暴⼒枚举的过程中,快速给出查询的结果,从⽽优化时间复杂度。差分数组fi表示:原数组第i项与第i-1项的差值。

2025-03-30 17:40:17 824

原创 NO.59十六届蓝桥杯备战|基础算法-前缀和|一维前缀和|最大子段和|二维前缀和|激光炸弹(C++)

前缀和与差分的核⼼思想是预处理,可以在暴⼒枚举的过程中,快速给出查询的结果,从⽽优化时间复杂度。前缀和模板题,直接套⽤「公式」创建前缀和数组,然后利⽤前缀和数组的「性质」处理q 次查询。⼆维前缀和模板题,直接套⽤「公式」创建前缀和矩阵,然后利⽤前缀和矩阵的「性质」处理q次询问。查询以(x1, y1 ) 为左上⻆(x2, y2 ) 为右下⻆的⼦矩阵的和。紫色区域=全-绿-粉-黄=全-(绿+粉)-(绿+黄)+绿=解法2:前缀和,快速求出数组中,某一段的区间和,O(1)区域内,所有元素的和。

2025-03-28 16:47:12 470

原创 NO.58十六届蓝桥杯备战|基础算法-枚举|普通枚举|二进制枚举|铺地毯|回文日期|扫雷|子集|费解的开关|Even Parity(C++)

我们发现,当第⼀列中,第⼀⾏的⼩格⼦的状态确定了之后,其实后续⾏的状态也跟着固定下来。⽽第⼀列中,第⼀⾏的状态要么有雷,要么没有雷,所以最终的答案就在0, 1, 2中。其中,push<<1有可能会让第5位变成1,这⼀位是⼀个「⾮法」的位置,有可能影响后续判断,我们要「截断⾼位」:(push<<1)^((1<<5)-1);使⽤枚举策略时,重点思考枚举的对象(枚举什么),枚举的顺序(正序还是逆序),以及枚举的⽅式(普通枚举?因此,我们枚举第⼀列中,第⼀⾏的两种状态:要么有雷,要么没雷。

2025-03-26 20:14:00 1241

原创 NO.57十六届蓝桥杯备战|基础算法-高精度|加减乘除|模拟竖式计算(C++)

定义⼀个指针i 从「⾼位」遍历被除数,⼀个变量t 标记当前「被除的数」,记除数是b;模拟⼩学「列竖式」计算「两数相加」的过程。

2025-03-25 16:41:07 497

原创 NO.18|操作系统|命令|文件权限|软链接|硬链接|静态库|动态库|GDB|大端小端|进程调度算法|内存|用户系统态|LRU|线程|页表|缺页中断|虚拟内存|物理内存|虚拟地址|堆栈|malloc

GDB调试:gdb调试的是可执行文件,在gcc编译时加入 -g ,告诉gcc在编译时加入调试信息,这样gdb才能调试这个被编译的文件 gcc -g tesst.c -o testquit:退出gdb,结束调试list:查看程序源代码list 5,10:显示5到10行的代码list test.c:5, 10: 显示源文件5到10行的代码,在调试多个文件时使用list get_sum: 显示get_sum函数周围的代码。

2025-03-25 10:00:58 760

原创 NO.56|基础算法-模拟|多项式输出|蛇形方阵|字符串的展开|方向向量(C++)

模拟+分类讨论,对于⼀元n次⽅程的的最终结果,我们仅需按照顺序,考虑每⼀项的三件事情:符号+系数+次数。模拟,顾名思义,就是题⽬让你做什么你就做什么,考察的是将思路转化成代码的代码能⼒。

2025-03-24 22:08:06 438

原创 NO.16|C++新特性|智能指针|右值引用|转移语义|weak_ptr|shared_ptr|四种类型转换|auto|可变参数模板|Lambda函数

此时不会报错,p2剥夺了p1的所有权,但是当程序运行时访问p1将会报错。所以auto_ptr的缺点是:存在潜在的内存崩溃问题。(2)unique_ptr(替换auto_ptr)unique_ptr实现独占式拥有或严格拥有概念,保证同一时间内只有一个智能指针可以指向该对象。它对于避免资源泄露,例如,以new创建对象后因为发生异常而忘记调用delete时的情形特别有用。采用所有权模式,和上面例子一样编译器认为P4=P3非法,避免了p3不再指向有效数据的问题。因此,unique_ptr比auto_ptr更

2025-03-23 20:17:18 962

原创 NO.15|C++新特性|初始化|auto|decltype|智能指针shared_ptr|空指针nullptr|范围for|右值引用|move|无序容器哈希表|正则表达式|Lambda表达式

可以看到,它们的形式都是统一的。这里需要注意的是,a3 虽然使用了等于号,但它仍然是列表初始化,因此,私有的拷贝构造并不会影响到它。这很容易理解,auto 是根据变量的初始值来推导出变量类型的,如果不初始化,变量的类型也就无法推导了。auto 根据"=“右边的初始值 value 推导出变量的类型,而 decltype 根据 exp 表达式推导出变量的类型,跟”="右边的 value 没有关系。注意:对于以值传递方式引入的外部变量,lambda 表达式修改的是拷贝的那一份,并不会修改真正的外部变量;

2025-03-23 17:18:59 945

原创 NO.14|C++STL|动态链接|map|unordered_map|vector|list|set|push_back|emplace_back(C++)

如果要将一个临时变量push到容器的末尾,push_back()需要先构造临时对象,再将这个对象拷贝到容器的末尾,而emplace_back()则直接在容器的末尾构造对象,这样就省去了拷贝的过程。vector拥有一段连续的内存空间,因此支持随机访问,如果需要高效的随即访问,而不在乎插入和删除的效率,使用vector。特点:元素在堆中存放,每个元素都是存放在一块内存中,它的内存空间可以是不连续的,通过指针来进行数据的访问。优点:和数组类似开辟一段连续的空间,并且支持随机访问,所以它的查找效率高其时间复杂度。

2025-03-23 15:51:27 848

原创 NO.13|C++STL|基本组成部分|容器|map|hashtable|deque|list|allocator|迭代器|resize|reserve(C++)

顺序容器容器并非排序的,元素的插入位置同元素的值无关。包含vector、deque、list,具体实现原理如下:(1)vector 头文件动态数组。元素在内存连续存放。随机存取任何元素都能在常数时间完成。在尾端增删元素具有较佳的性能。(2)deque 头文件双向队列。元素在内存连续存放。随机存取任何元素都能在常数时间完成(仅次于vector)。在两端增删元素具有较佳的性能(大部分情况下是常数时间)。(3)list 头文件双向链表。元素在内存不连续存放。

2025-03-23 13:03:47 929

原创 NO.12|C++面向对象|虚方法|拷贝构造函数|权限|抽象类|多态|虚析构函数|虚基类|拷贝赋值|移动赋值|类模板|模板类|虚函数表(C++)

多态是面向对象的重要特性之一,它是一种行为的封装,就是不同对象对同一行为会有不同的状态。(举例 : 学生和成人都去买票时,学生会打折,成人不会)多态是以封装和继承为基础的。在C++中多态分为静态多态(早绑定)和动态多态(晚绑定)两种,其中动态多态是通过虚函数实现,静态多态通过函数重载实现,代码如下class Apublic:参考回答在被继承的类前面加上virtual关键字,这时被继承的类称为虚基类,代码如下:class A虚继承的类可以被实例化,举例如下Liger lg。

2025-03-23 10:40:54 617

原创 NO.11|C++面向对象|虚析构|虚构造|模板类|派生类|移动构造函数|引用数据成员|虚函数|常函数|虚继承|纯虚函数|菱形继承

不能用默认构造函数初始化,必须提供构造函数来初始化引用成员变量。否则会造成引用未初始化错误。构造函数的形参也必须是引用类型。不能在构造函数里初始化,必须在初始化列表中进行初始化类的成员函数后面加 const,表明这个函数不会对这个类对象的数据成员(准确地说是非静态数据成员)作任何改变。在设计类的时候,一个原则就是对于不改变数据成员的成员函数都要在后面加const,而对于改变数据成员的成员函数不能加 const。

2025-03-22 22:09:45 630

原创 NO.55十六届蓝桥杯备战|排序|插入|选择|冒泡|堆|快速|归并(C++)

常规快排:在待排序区间中任取⼀个元素作为枢轴(pivot,或称基准值,通常选取区间⾸元素),然后按照基准值⼤⼩将区间中元素分割成左右两部分,左侧区间中元素⼩于基准值,右侧区间中元素⼤于等于基准值,即基准值已经放在其该放的位置上,该过程称为⼀次划分。它的⼯作原理是每次检查相邻两个元素,如果前⾯的元素与后⾯的元素满⾜给定的排序条件,就将相邻两个元素交换。这是i等于5,r也是5,遍历结束,此时p=4,两个4已经在正确的位置上。i这是下标为4,ai为1,比p小,++l和i交换,i++

2025-03-22 19:27:35 1353

原创 NO.54|哈希表和unordered_set与unordered_map|直接定址法|除留余数法|线性探测法|链地址法|算法题(C++)

哈希表(hash table),⼜称散列表,是根据关键字直接进⾏访问的数据结构。哈希表建⽴了⼀种关键字和存储地址之间的直接映射关系,使每个关键字与结构中的唯⼀存储位置相对应。理想情况下,在散列表中进⾏查找的时间复杂度为O(1) ,即与表中的元素数量⽆关。因此哈希表是⼀种存储和查找⾮常快的结构。

2025-03-22 14:11:42 682

原创 NO.10|C++面向对象|三大特征|重载|重写|构造函数|初始化顺序|向上转型|向下转型|深拷贝|浅拷贝|多态(C++)

面向对象是一种编程思想,把一切东西看成是一个个对象,比如人、耳机、鼠标、水杯等,他们各自都有属性,比如:耳机是白色的,鼠标是黑色的,水杯是圆柱形的等等,把这些对象拥有的属性变量和操作这些属性变量的函数打包成一个类来表示面向过程和面向对象的区别面向过程:根据业务逻辑从上到下写代码面向对象:将数据与函数绑定到一起,进行封装,这样能够更快速的开发程序,减少了重复代码的重写过程只定义了析构函数,编译器将自动为我们生成拷贝构造函数和默认构造函数。默认构造函数和初始化构造函数。

2025-03-21 22:19:10 855

原创 NO.53十六届蓝桥杯备战|set和map|算法题|size|empty|begin|end|insert|erase|find|count|lower_bound|upper_bound(C++)

⽽ map ⾥⾯存的是⼀个 pair<key, value> ,(k-v模型)不仅有⼀个关键字,还会有⼀个与关键字绑定的值,⽐较⽅式是按照 key 的值来⽐较。set 与 multiset 的区别: set 不能存相同元素, multiset 可以存相同的元素,其余的使⽤⽅式完全⼀致。map 与 multimap 的区别: map 不能存相同元素, multimap 可以存相同的元素,其余的使⽤⽅式完全⼀致。这是map最好⽤的接⼝,有了这个重载,map的使⽤就变得特别轻松,不⽤写很多冗余的代码。

2025-03-21 21:04:31 957

原创 NO.52十六届蓝桥杯备战|红⿊树|二叉搜索树|二叉平衡树|查找|插入|删除|构造(C++)

它是在搜索树的基础上,使每个结点上增加⼀个存储位表⽰结点的颜⾊,可以是Red或者Black,通过对任意⼀条从根到叶⼦的路径上各个结点着⾊⽅式的限制,确保没有⼀条路径会⽐其他路径⻓出2倍,因⽽是⼀棵接近平衡的⼆叉搜索树。⼆叉搜索树的查找是从根结点开始,沿某个分⽀逐层向下⽐较的过程,若⼆叉搜索树⾮空,先将给定值与根结点的关键字⽐较,若相等,则查找成功;在⼆叉搜索树中插⼊新结点之后,插⼊路径的点中,可能存在很多平衡因⼦的绝对值⼤于1的,此时找到距离插⼊结点最近的不平衡的点,以这个点为根的⼦树就是最⼩不平衡⼦树。

2025-03-21 15:39:18 1016

原创 NO.51十六届蓝桥杯备战|堆算法题|第k小|除2|最小函数值|序列合并|舞蹈课(C++)

因为a和b都大于0,所以-b/2a一定小于0,对称轴在y轴左边,但是x取正整数,所以函数一定单调递增。然后拿出最小的值即堆顶元素,把下一个和再计算出来,再放入堆中。解法:利用小根堆,存所有相邻异性的差值,每次拿出最小的即可。然后每次拿出最小的那个,把对应的下一个函数值再计算出来。每次挑选出,当前数组中最大的偶数,减小一半。把所有的和全部算出来,然后找出最小的n个。求出所有函数中的m个值,然后取前n个。堆里面要存 和,a的编号,b的编号。仅需将x=1的所有函数值计算出来。的所有值计算出来,放进小根堆中。

2025-03-20 17:19:38 385

原创 NO.9|C++内存|堆和栈|内存管理|malloc和局部变量|程序section启动过程|全局变量|内存泄漏|atomoic|内存模型|内存对齐

简单地说就是申请了一块内存空间,使用完毕后没有释放掉。(1)new和malloc申请资源使用后,没有用delete和free释放;(2)子类继承父类时,父类析构函数不是虚函数。(3)Windows句柄资源使用后没有释放。

2025-03-19 21:44:41 619

原创 NO.50十六届蓝桥杯备战|堆和priority_queue|向上调整|向下调整|堆的创建插入删除获取堆顶获取大小|sizeempty|push|pop|top|内置类型结构体类型(C++)

堆(heap),是⼀棵有着特殊性质的完全⼆叉树,可以⽤来实现优先级队列(priority queue)。是⼀棵完全⼆叉树;对于树中每个结点,如果存在⼦树,那么该结点的权值⼤于等于(或⼩于等于)⼦树中所有结点的权值。如果根结点⼤于等于⼦树结点的权值,称为⼤根堆;反之,称为⼩根堆。

2025-03-19 20:37:18 1024

原创 NO.49十六届蓝桥杯备战|二叉树|满二叉树|完全二叉树|顺序存储|链式存储|dfs|bfs|求二叉树深度宽度距离|根据其中两个遍历序列求前序或后序序列(C++)

⼆叉树是⼀种特殊的树型结构,它的特点是每个结点⾄多只有2棵⼦树(即⼆叉树中不存在度⼤于2的结点),并且⼆叉树的⼦树有左右之分,其次序不能任意颠倒。⼆叉的意思是这种树的每⼀个结点最多只有两个孩⼦结点。注意这⾥是最多有两个孩⼦,也可能没有孩⼦或者是只有⼀个孩⼦。注意:⼆叉树结点的两个孩⼦,⼀个被称为左孩⼦,⼀个被称为右孩⼦。其顺序是固定的,就像⼈的左⼿和右⼿,不能颠倒混淆。

2025-03-19 16:51:22 923

原创 NO.8|C++语言基础|静态变量|局部变量|内联函数|宏函数|i++|++i|new|malloc|const|define|函数指针|指针函数|指针|C++传值|const*|*const

当开辟的空间小于 128K 时,调用 brk()函数;当开辟的空间大于 128K 时,调用mmap()。malloc采用的是内存池的管理方式,以减少内存碎片。先申请大块内存作为堆区,然后将堆区分为多个内存块。当用户申请内存时,直接从堆区分配一块合适的空闲快。采用隐式链表将所有空闲块,每一个空闲块记录了一个未分配的、连续的内存地址。值传递用于对象时,整个对象会拷贝一个副本,这样效率低;而引用传递用于对象时,不发生拷贝行为,只是绑定对象,更高效;而define用于定义宏,而宏也可以用于定义常量。

2025-03-18 22:07:04 679

原创 NO.48十六届蓝桥杯备战|树|有序无序树|有根无根树|孩子表示法|vector实现|链式前向星|DFS|BFS(C++)

树型结构是⼀类重要的⾮线性数据结构。有⼀个特殊的结点,称为根结点,根结点没有前驱结点。除根结点外,其余结点被分成M个互不相交的集合T1T2TMT1​T2​TM​,其中每⼀个集合T⼜是⼀棵树,称这棵树为根节点的⼦树。因此,树是递归定义的前者由于⽤到了容器vector,实际运⾏起来相⽐较于后者更耗时,因为vector是动态实现的但是在如今的算法竞赛中,⼀般不会⽆聊到卡这种常数时间。也就是vector虽然慢,但不会因此⽽超时。

2025-03-18 19:56:27 1025

原创 NO.47十六届蓝桥杯备战|栈和队列算法题|有效的括号|后缀表达式|括号序列|机器翻译|海港|双端队列|deque(C++)

⼀直让元素进栈,进栈的同时判断是否需要出栈。当所有元素模拟完毕之后,如果栈中还有元素,那么就是⼀个⾮法的序列。否则,就是⼀个合法的序列。双端队列也是⼀种特殊线性结构,其允许两端都可以进⾏数据元素⼊队和出队操作。将队列的两端分别称为前端和后端,两端都可以进⾏数据⼊队和出队。同时创建⼀个bool 类型的数组,快速判断元素是否在队列中。创建⼀个队列,模拟整个流程。⽤栈来模拟进出栈的流程。T 可以是任意类型的数据。clear :清空队列。

2025-03-18 16:16:38 697

原创 NO.7|C++语言基础|特点|区别|结构体|关键字|编译|数组和指针|函数指针|静态变量|成员函数|野指针(C++)

参考回答概念:函数指针就是指向函数的指针变量。每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。定义形式如下:f = &func;函数指针的应用场景:回调(callback)。我们调用别人提供的 API函数(Application Programming Interface,应用程序编程接口),称为Call;如果别人的库里面调用我们的函数,就叫Callback。概念:野指针就是指针指向的位置是不可知的(随机的、不正确的、没有明确限制的)

2025-03-17 21:48:42 679

原创 NO.46十六届蓝桥杯备战|栈stack和队列queue|创建|进栈|出栈|栈顶|判空|有效元素个数|入队|出队|队头|队尾|stack|queue(C++)

这⾥要注意,因为栈特殊的规定,不⽀持遍历整个栈中的元素。因此,需要查找栈中元素的时候,只能查找到栈顶元素。队列也是⼀种访问受限的线性表,它只允许在表的⼀端进⾏插⼊操作,在另⼀端进⾏删除操作。不⽤真的删除元素,只⽤将元素个数减1 ,就相当于删除栈顶元素。栈是⼀种只允许在⼀端进⾏数据插⼊和删除操作的线性表。这⾥依旧舍弃下标为0 的位置,有效元素从1开始记录。进栈操作,那就把元素放在栈顶位置即可。T 可以是任意类型的数据。T可以是任意类型的数据。

2025-03-17 20:21:48 1006

原创 NO.45十六届蓝桥杯备战|链表和list|静态模拟实现|头插|遍历|按值查找|pos之后插入|pos之前插入|删除pos后元素|动态链表list|4道练习(C++)

线性表的链式存储就是链表。它是将元素存储在物理上任意的存储单元中,由于⽆法像顺序表⼀样通过下标保证数据元素之间的逻辑关系,链式存储除了要保存数据元素外,还需额外维护数据元素之间的逻辑关系,这两部分信息合称结点(node)。即结点有两个域:保存数据元素的数据域和存储逻辑关系的指针域两个⾜够⼤的数组,⼀个⽤来存数据,⼀个⽤来存下⼀个结点的位置变量 h ,充当头指针,表⽰头结点的位置变量 id ,为新来的结点分位置int h;// 头指针int id;// 下⼀个元素分配的位置。

2025-03-17 16:19:13 555

原创 NO.44十六届蓝桥杯备战|顺序表习题|询问学号|寄包柜|移动零|颜色分类|合并两个有序数组|pair(C++)

直接⽤ vector 或者数组模拟即可如果⽤⼆维数组来模拟,需要开105×105⼤⼩的数组,空间会超。但是格⼦的总数量是107,⽤数组模拟是完全够⽤的。因此可以⽤动态扩容的数组,创建105个vector来模拟在本题中,我们可以⽤⼀个cur指针来扫描整个数组,另⼀个dest指针⽤来记录⾮零数序列的最后⼀个位置。根据cur在扫描的过程中,遇到的不同情况,分类处理,实现数组的划分。在cur遍历期间,使[0, dest]的元素全部都是⾮零元素,的元素全是零cur:扫描数组。

2025-03-17 10:39:35 668

原创 NO.43十六届蓝桥杯备战|顺序表和vector|模拟实现|vector|size|empty|begin|end|push_back|pop_back|front|back|resize|clear

线性表是n个具有相同特性的数据元素的有序序列。线性表在逻辑上可以想象成是连续的⼀条线段,线段上有很多个点因此,线性表是⼀个⽐较简单和基础的数据结构。

2025-03-16 15:09:14 871

原创 1. QT|创建项目|代码解释|main.cpp|widget.h|widget.cpp|widget.ui|Empty.pro(C++)

h .cpp .pro .ui都是源代码编译运行Qt项目,构建过程中还会生成中间文件打开文件资源管理器在运行一次程序后,就会在项目目录并列的地方,多出来一个build目录。这个目录里就是该项目运行过程中,生成的一些临时文件。编译Qt程序还是会用到maikfile。这个makefile是qmake自动生成的ui_widget.h:就是xml文件生成的.h文件,是代码自动生成的。

2025-03-16 10:16:32 680

原创 NO.42十六届蓝桥杯备战|数据结构|算法|时间复杂度|空间复杂度|STL(C++)

在计算机科学中,数据结构是⼀种数据组织、管理和存储的格式。它是相互之间存在⼀种或多种特定关系的数据元素的集合。说点通俗易懂的话,数据结构就是数据的组织形式,研究的就是把数据按照何种形式存储在计算机中算法(Algorithm)是指解题⽅案的准确⽽完整的描述,是⼀系列解决问题的清晰指令,算法代表着⽤系统的⽅法描述解决问题的策略机制。也就是说,能够对⼀定规范的输⼊,在有限时间内获得所要求的输出。算法是可以没有输⼊的,⼀定要有输出的。没有输出的算法是没有意义的。

2025-03-15 16:24:43 1024

原创 NO.41十六届蓝桥杯备战|使⽤指针实现链表|打印|头插|头删|尾插|尾删|销毁|面向对象实现链表(C++)

数据结构是计算机的内存中存储和组织数据的⽅式。数据结构关注如何以最有效的⽅式组织和存储数据,以便于在计算机程序中进⾏操作和处理。

2025-03-15 13:33:22 341

原创 NO.40十六届蓝桥杯备战|指针和动态内存管理|取地址操作符|解引用操作符|指针+-整数|void*|new|delete(C++)

指针 +1 ,其实跳过 1 个指针指向的元素。这两种⽅式,如果创建是全局的变量和数组,是在内存的静态区(数据段)申请的,如果是局部的变量和数组,是在内存的栈区申请的。计算机上CPU(中央处理器)在处理数据的时候,需要的数据是在内存中读取的,处理后的数据也会放回内存中,那我们买电脑的时候,电脑上内存是 8GB/16GB/32GB 等,那这些内存空间如何⾼效的管理。注意:如果⼀个指针变量的值是 NULL 时,表⽰这个指针变量没有指向有效的空间,所以⼀个指针变量的值是 NULL 的时候,是不能解引⽤操作的。

2025-03-15 09:31:08 780

原创 NO.39十六届蓝桥杯备战|结构体八道练习|加号小于号运算符重载|自定义排序(C++)

【代码】NO.39结构体八道练习|加号小于号运算符重载|自定义排序(C++)

2025-03-14 17:17:51 249

原创 NO.38结构体和类|初始化|操作|访问|嵌套|运算符重载|结构体排序|类|访问权限|结构体和类区别(C++)

结构体类型声明的关键字是 struct ,结构体类型声明的基本语法如下struct tag成员变量列表;//成员变量可以有1个,也可以有多个成员函数列表;//成员函数可以有,也可以没有} 结构体变量列表;//在声明结构体类型的同时,创建结构体变量,可以有多个,中间使⽤逗号隔开struct Stuint math;int total;int total;//结构体类型Stu s1;//可以省略structStu s[50];

2025-03-14 14:27:44 853

原创 NO.37十六届蓝桥杯备战|位运算的应用|保留获取指定位|指定位设置位1或0|反转指定位|最右边的1变为0|只保留最右边的1|异或|运算符优先级结合性(C++)

当我们需要获取⼀个整数x的⼆进制中第 i 位(从低到⾼,以最低位为第 0 位)是1还是0的时候,我们可以对 x 做这样的运算: (x >> i) & 1 ,如果结果是 0 ,表⽰第 i 位是 0 ,如果结果是 1 ,表⽰第 i 位是 1。有时候需要从⼀个整数 x 的 2 进制中取出某个位或者某⼏个位,使取出的位置上保留原来的值,其他位置为 0 ,这时候可以使⽤⼀个值 m ,使 m 的 2 进制位中对应取出的位置为 1 ,其他位为 0。这些字段往往位于寄存器的特定位中,需要通过获取指定位的值来读取。

2025-03-13 21:36:45 896

原创 14.onlineoj项目总结(C++)

HTTP协议被⼴泛⽤于服务器之间的通信,主要因为HTTP是⼀个简单、易于理解和实现的协议并且HTTP是⼀个⼴泛⽀持的协议,⼏乎所有的操作系统和编程语⾔都有对HTTP的⽀持,使得跨平台和跨语⾔的通信变得容易。oj_server收到⽤⼾提交的数据,使⽤json将该数据反序列化,拼接相应题⽬的测试⽤例代码,将新的代码序列化,利⽤httplib构建⼀个客⼾端,通过RR轮转选择负载最低的主机发送给某个。a. 是⼀个单头⽂件实现的库,使⽤简单,只需要clone仓库后包含⼀个头⽂件即可,⽆需其他安装以及库的链接。

2025-03-11 22:33:27 980

原创 13.boost项目总结(C++)

通过这个项⽬,进⼀步的了解了搜索引擎的⼯作原理,对Linux,HTTP,⽂件操作,数据结构等核⼼操作的理解有了进⼀步的提⾼,锻炼了项⽬设计,问题解决的能⼒。写的搜索引擎,功能/流程⼤多⽐较复杂,⽽此处我只需要⼀个⽐较简单的搜索引擎,因此需要对功能进⾏提炼,把最核⼼的部分提取出来并进⾏实现.该项⽬能够达成针对Boost⽂档的搜索预期效果,也就是通过浏览器访问服务器获取搜索⻚⾯,输⼊关键字进⾏搜索,得到预期正确的搜索结果.这样的⽂档包含多个查询词,相关性理解成更⾼,应该要排到更靠前的位置。

2025-03-11 22:31:48 600

原创 NO.6.STL容器和算法|allocator|序列式容器|vector|map|set|STL迭代器|resize|reserve

STL ⼀共提供六⼤组件,包括容器,算法,迭代器,仿函数,配接器和配置器,彼此可以组合套⽤。容器通过配置器取得数据存储空间,算法通过迭代器存取容器内容,仿函数可以协助算法完成不同的策略变化,配接器可以应⽤于容器、 仿函数和迭代器。容器: 各种数据结构,如 vector, list, deque, set, map,⽤来存放数据, 从实现的⻆度来讲是⼀种类模板。算法: 各种常⽤的算法,如 sort(插⼊,快排,堆排序), search(⼆分查找), 从实现的⻆度来讲是⼀种⽅法模板。

2025-03-11 20:21:39 598

日语学习考级、语法知识点总结资料

日语的的语法知识点总结笔记,和日语学习方法总结。

2023-10-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除