- 博客(43)
- 收藏
- 关注
原创 Linux 进程间通信
● 进程为什么要通信?进程之间需要某种协同,而协同的前提条件就是通信(怎么协同 – 数据是有类别的,比如通知就绪的数据、单纯传递过来的数据、控制相关的信息……通过这些数据的交流进行协同)● 进程如何通信进程间通信,成本可能会高一点(进程具有独立性,它们天然是不能通信的)进程间通信的前提:先让不同的进程看到同一份(操作系统)资源(一段内存)
2024-05-12 13:24:38
1053
1
原创 Linux 文件
Super Block(超级块):描述整个分区整体的信息,(eg.bolck 和 inode的总量,未使用的block和inode的数量,一个block和inode的大小,最近一次挂载的时间,最近一次写入数据的时间,最近一次检验磁盘的时间等其他文件系统的相关信息)原因:尽管你在上面的指令里表明了头文件、库的位置,头文件在预编译时展开(拷贝到源文件中),而动态库则需要在程序运行的时候找到动态库加载并运行 —— 上面的指令是对 gcc 这个编译器说的,操作系统不知道,自然也就无法根据你给出的路径去找库文件。
2024-05-09 22:44:00
461
原创 算法:滑动窗口
因为这道题说数组中的数全为正整数,所以 += 操作后 n 肯定是递增的(单调性) —— 当 n >= target 时就没有继续 += 的必要了,此时 n 就是这个循环中 长度最小的、和大于等于target的子数组的和。left 和 right 两个“指针”之间形成一个区间,并记录(维护)着这个区间内的信息(子数组和、长度),两个指针从左向右移动的过程中,这个区间就像一个窗口一样在数组中滑动 —— 滑动窗口。不同于之前的题目的是,这道题的滑动窗口是固定长度的(长度为p的大小)3.判断 出窗口。
2024-03-05 12:36:27
1567
2
原创 C++ 位图&布隆过滤器&哈希切割
思路:用哈希分割切成500个小文件,使用map / unordered_map统计每个小文件中的 ip 出现的次数,并记录每个小文件各自出现最多的 ip(记得每处理完一个小文件后 clear 释放空间)大量的数据如果用哈希表存储,会很浪费空间,于是我们用位图处理,但位图一般只能处理整形,面对字符串无能为力,但如果运用哈希的思想的话……思路1:先将一个文件中的数据导入位图中,然后看第二个文件,每次找到交集数据时将位图中相应位置reset,防止输出重复数据。适用于海量数据,数据无重复的场景。
2024-02-06 16:57:40
1055
原创 C++ 哈希表(unordered_map与unordered_set)
nnd,我还以为换了个环境就能得到我想要的结果,按理说根据哈希表的特点无论是2022还是2019应该测出来unordered_set的查找应该比set要快才对,但即便我把数据增多到10000000也仍然是两个0……● 哈希表里存储数据和位置之间的关系是计算来的,上面存储pair,我们就其中的first去计算,但我们这里默认了first就是整形,如果这是string呢?就和名字一样,这是 map、set 的无序版本(数据遍历出来是无序的),其底层不是红黑树,而是哈希表。也不算是一无所获……
2024-02-05 19:55:27
888
原创 类和对象(中)-- 默认成员函数
即便类中什么都不写(空类),编译器也会生成以下成员函数:但如果我们自己实现了以上函数,编译器不会再生成相应函数特殊的成员函数,虽称作构造函数,主要任务却 并非开空间创造对象,而是初始化对象1.特征:2.格式(以 Stack 为例)3.默认构造函数无参构造函数、全缺省构造函数及编译器自己生成的构造函数都称为默认构造函数● 建议每个类都要有一个默认构造函数4.需要注意的地方"初始化"成随机数有用吗?—— 没有,这属于初期设计的不足之处C++将类型分为内置类型(基本类型,像是 int、double……)和
2023-10-15 21:02:13
59
1
原创 C 程序环境与预处理
预定义符号意义__FILE __进行编译的源文件__LINE __文件当前行号__DATE __文件被编译的日期__TIME __文件被编译的时间__STDC __如果编译器遵循ANSI C(C语言标准),其值为一,否则未定义printf("编译源文件所处路径:%s\n文件被编译的时间:%s\n",__FILE__,__TIME__);//这个在 VS2022 里就打印不了,但 gcc 可以。
2023-08-27 18:22:39
64
1
原创 文件操作
,它们各有差异,操作的方式各不同,若要学这么多不同的东西应该怎么使用学习成本太高,于是它们的上层封装了一层 “流” 统筹它们的使用,使得我们只需通过 “流” 便可以使用它们……每个被使用的文件都在内存中开辟了一个相应的文件信息区(结构体对象),用于存放文件相关信息(文件名、状态、位置。:内存中数据以二进制的形式存在,转换为字符(“w”)后写入文件即文本文件,以二进制的形式直接写入文件(wb)即二进制文件。"w"只写,可创建文件,每次都会先将文件内容销毁。"a"追加,可创建文件,文件原先的内容会被保留。
2023-08-23 17:06:01
42
原创 int**arr 为什么不能用于二维数组传参(但可以用于指针数组传参)
对于下面这一串代码(无法正常运行),可能部分同学曾经写过,并奇怪为何无法运行,即如标题所说——int**arr 不能用于二维数组传参(但可以用于指针数组传参)验证:根据错误实例的推断,我们可以知道,对形参只用一次解引用即得数据。首先我们需要知道解引用对于 二维数组 和 指针 的规则是不同的。
2023-07-26 18:04:07
411
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人