函数传参 1、函数中定义的变量属于该函数,出了该函数就不能再被别的函数直接使用 2、实参与形参之间是以赋值的方式进行传递数据的,并且是单向值传递 3、return语句其实是把返回值数据放入公共区域内存中(调用者和被调用者都可以访问),调用者会从该区域获取返回值;如果不写return语句,该区域会是
问题背景   有一种数据结构,叫做散列表,还有一些称之为“字典”(dict)、“映射”(map)、“哈希”(hash)。   这种数据结构有个特点,一般情况下,能在O(1)时间内根据关键字找到要查询的信息(进行一次或者很少次比较),这是因为散列表的底层一般会使用数组实现,利用“散列函数”或者称为“
去年看到字节跳动给golang提了issue建议把map的底层实现改成SwissTable的时候,我就有想写这篇博客了,不过因为种种原因一直拖着。 直到最近遇golang官方开始讨论为了是否要接受SwissTable作为map的默认实现,以及实际遇到了一个hashtable有关的问题,促使我重新思
概念 定义:给定数集 (S),以异或运算张成的数集与 (S) 相同的极大线性无关集,称为原数集的一个线性基。 简单地说,线性基是一个数的集合。每个序列都拥有至少一个线性基。取线性基中若干个数异或起来可以得到原序列中的任何一个数。 性质 性质一 取线性基中若干个数异或起来可以得到原序列中的任何一个
个人经历   先说个人经历,如果不写的话很多同学看了这篇博客可能会觉得有些奇怪,首先介绍一下,笔者毕业后参加了三次考研,但是很不幸,因为种种原因,三次考研均以全军覆没而告终,因此在找工作前,除了考研的几门专业课,笔者其实在编程方面的能力已经是一片沼泽之地,曾经仅能拿得出手的几门学科也随着时间化为乌
预处理 动态库和静态库 库: 将源文件生成的二进制文件 只需要链接即可生成可执行文件 制作静态库 gcc -c fun.c -o fun.o ar rc libtestlib.a fun.o 使用静态库 库和工程在同一目录下 gcc main.c libtestlib.a 静态库libt
进制转换: 1、为什么使用二进制、八进制、十六进制? 因为目前的CPU只能识别高低两种电平,只能对二进制数据进行计算 二进制虽然能够直接被计算机识别,但是不方便人去书写和记录,因此就把二进制数据转换成八进制,方便记录到文档中 随着CPU的位数的不断增加,已经到目前的64位,所以八进制不再能够满足需
为什么不推荐在头文件中直接定义函数? 1. 函数的分文件编写 在C++中,函数的分文件编写是一种让代码结构更加清晰的方法,通常可以分为以下几个步骤: 创建后缀名为 .h 的头文件,在头文件中写函数的声明,以及可能用到的其他头文件或命名空间 创建后缀名为 .cpp 的源文件,在源文件中写函数的定义,
  本篇谈一谈单链表的改,具体操作就是找到他,然后修改元素即可,上一篇有相关代码,可以参考。   改函数代码如下: void Correct(LinkList header, int site_, char letter_) { LinkList q = Search_Site(head
9、创建线程 ①什么是线程? <1>线程是附属在进程上的执行实体,是代码的执行流程。 <2> 一个进程可以包含多个线程,但一个进程至少要包含一个线程。 可以这么理解,进程属于是空间上的概念,是代表了4GB 的虚拟内存,而线程属于是时间上的概念,也就是说线程也就是当前正在运行
后缀数组是什么 后缀数组就是主要处理字符串后缀问题的,它的实现算法主要有两种:倍增法和 DC3,复杂度分别是 (O(nlog n)) 和 (O(n))。这里由于 DC3 代码答辩且难以理解,我就只写了倍增法的实现。 例题引入 P3809 【模板】后缀排序 题目大意 读入一个长度为 (n) 的由大小
1、导入 关于Win32的错误认知: (1)已经有malloc()函数了,为什么还要学Win32 API? (2)学MFC就可以了,为什么要学Win32? Win32课程包含的内容: 01、字符 09、文件系统 02、多线程 10、内存映射 03、线程同步 11、DLL 04、窗口的本质 12
网络流 何为网络流        想要弄清楚网络流,首先要知道网络的概念,通常在运筹学中,网络是指一个有向图$G = (V,E)$ 。其每条边$(u,v)in E$都有一个权值$c(u,v)$,称为这条边的流量(Capacity),还有两个特殊的点,一个是源点(Source),一个是汇点(Sink
Miller_rabin 素数测试 一种用来判断素数的算法。 前置芝士 威尔逊定理 若 (p) 为素数,((p-1)! equiv -1 (mod p))。 证明: 充分性证明: 如果 (p) 不是素数,那么他的因数必定存在于$ 1,2,3,dots,p−1$ 之中,所以 (gcd((p-1)!,
一:背景 1. 讲故事 前几天有位朋友找到我,说他们公司的后端服务内存暴涨,而且CPU的一个核也被打满,让我帮忙看下怎么回事,一般来说内存暴涨的问题都比较好解决,就让朋友抓一个 dump 丢过来,接下来我们用 WinDbg 一探究竟。 二:WinDbg 分析 1. 到底是谁在暴涨 拿到 dump
      我从大二上学期的时候学了数据结构,但是当时对数据结构的重要性并不太重视,直到在升大三的暑假,才意识到数据结构对以后学语言和找工作方面的重要性,所以亡羊补牢,为时未晚,尝试着结合b站上王道考研数据结构课,来记录自己对知识和代码的理解。     数据结构学习的内容可以理解为,我们用代码怎么
一、内核驱动签名初篇 1.大概聊一聊现有驱动情况 1.开启安全启动(Secure Boot) 1.使用微软WHQL签名 2.使用2013-2015年签发的驱动签名,已过期未吊销未拉黑(不知道什么时候打个补丁会修复). 2.关闭安全启动(Secure Boot) 1.使用微软WHQL签名 2.使用过
在笔者前几篇文章中,我们使用汇编语言并通过自定位的方法实现了一个简单的MessageBox弹窗功能,但由于汇编语言过于繁琐在编写效率上不仅要考验开发者的底层功底,还需要写出更多的指令集,这对于普通人来说是非常困难的,当然除了通过汇编来实现ShellCode的编写以外,使用C同样可以实现编写,在多数

推荐文章