标签:C++语言开发
在笔者前几篇文章中,我们使用汇编语言并通过自定位的方法实现了一个简单的MessageBox弹窗功能,但由于汇编语言过于繁琐在编写效率上不仅要考验开发者的底层功底,还需要写出更多的指令集,这对于普通人来说是非常困难的,当然除了通过汇编来实现ShellCode的编写以外,使用C同样可以实现编写,在多数
一、内核驱动签名初篇 1.大概聊一聊现有驱动情况 1.开启安全启动(Secure Boot) 1.使用微软WHQL签名 2.使用2013-2015年签发的驱动签名,已过期未吊销未拉黑(不知道什么时候打个补丁会修复). 2.关闭安全启动(Secure Boot) 1.使用微软WHQL签名 2.使用过
一:背景 1. 讲故事 前几天有位朋友找到我,说他们公司的后端服务内存暴涨,而且CPU的一个核也被打满,让我帮忙看下怎么回事,一般来说内存暴涨的问题都比较好解决,就让朋友抓一个 dump 丢过来,接下来我们用 WinDbg 一探究竟。 二:WinDbg 分析 1. 到底是谁在暴涨 拿到 dump
Miller_rabin 素数测试 一种用来判断素数的算法。 前置芝士 威尔逊定理 若 (p) 为素数,((p-1)! equiv -1 (mod p))。 证明: 充分性证明: 如果 (p) 不是素数,那么他的因数必定存在于$ 1,2,3,dots,p−1$ 之中,所以 (gcd((p-1)!,
网络流 何为网络流        想要弄清楚网络流,首先要知道网络的概念,通常在运筹学中,网络是指一个有向图$G = (V,E)$ 。其每条边$(u,v)in E$都有一个权值$c(u,v)$,称为这条边的流量(Capacity),还有两个特殊的点,一个是源点(Source),一个是汇点(Sink
1、导入 关于Win32的错误认知: (1)已经有malloc()函数了,为什么还要学Win32 API? (2)学MFC就可以了,为什么要学Win32? Win32课程包含的内容: 01、字符 09、文件系统 02、多线程 10、内存映射 03、线程同步 11、DLL 04、窗口的本质 12
后缀数组是什么 后缀数组就是主要处理字符串后缀问题的,它的实现算法主要有两种:倍增法和 DC3,复杂度分别是 (O(nlog n)) 和 (O(n))。这里由于 DC3 代码答辩且难以理解,我就只写了倍增法的实现。 例题引入 P3809 【模板】后缀排序 题目大意 读入一个长度为 (n) 的由大小
为什么不推荐在头文件中直接定义函数? 1. 函数的分文件编写 在C++中,函数的分文件编写是一种让代码结构更加清晰的方法,通常可以分为以下几个步骤: 创建后缀名为 .h 的头文件,在头文件中写函数的声明,以及可能用到的其他头文件或命名空间 创建后缀名为 .cpp 的源文件,在源文件中写函数的定义,
个人经历   先说个人经历,如果不写的话很多同学看了这篇博客可能会觉得有些奇怪,首先介绍一下,笔者毕业后参加了三次考研,但是很不幸,因为种种原因,三次考研均以全军覆没而告终,因此在找工作前,除了考研的几门专业课,笔者其实在编程方面的能力已经是一片沼泽之地,曾经仅能拿得出手的几门学科也随着时间化为乌
概念 定义:给定数集 (S),以异或运算张成的数集与 (S) 相同的极大线性无关集,称为原数集的一个线性基。 简单地说,线性基是一个数的集合。每个序列都拥有至少一个线性基。取线性基中若干个数异或起来可以得到原序列中的任何一个数。 性质 性质一 取线性基中若干个数异或起来可以得到原序列中的任何一个
去年看到字节跳动给golang提了issue建议把map的底层实现改成SwissTable的时候,我就有想写这篇博客了,不过因为种种原因一直拖着。 直到最近遇golang官方开始讨论为了是否要接受SwissTable作为map的默认实现,以及实际遇到了一个hashtable有关的问题,促使我重新思
问题背景   有一种数据结构,叫做散列表,还有一些称之为“字典”(dict)、“映射”(map)、“哈希”(hash)。   这种数据结构有个特点,一般情况下,能在O(1)时间内根据关键字找到要查询的信息(进行一次或者很少次比较),这是因为散列表的底层一般会使用数组实现,利用“散列函数”或者称为“
环境搭建 第一步:安装cmake, gcc, g++ sudo apt-get install cmake gcc g++ 第二步:安装Eigen 此处安装的是Eigen3.2.1版本,一开始安装Eigen3.4.0,在最后所有环境配置完成后,运行ORBSLAM2时,运行一小段时间就自动退出。不
背景:   在公司使用qtcreator直接使用debug运行程序,程序10多分钟才加载成功。导致效率极低而无法正常使用断点调试。 替代方案:   debug模式下运行程序,然后点击应用程序输出右上角的"挂接调试器到PID按钮"绿色三角按钮。可以进入C++断点调试界面,但是无法对QML进行断点调试
arcgis 10.2 的紧凑型瓦片是bundle和bundlx组成的 v1格式 arcgis 10.3的的紧凑瓦片是bundle一个文件 v2格式 网上版本大多是c#的,写了个c++的。直接上代码 bool pie_datasource_bundle_readTile(const std:
本系列博客将利用C++实现一系列数值算法。数值算法离不开矩阵,但是C++并未自带矩阵这一对象,直接使用数组又会带来诸多不便,因此我们需要做一些预备工作————编写一个矩阵类,实现矩阵的基本功能。一般来说,读者可以直接使用Eigen库进行矩阵计算,从头开始造轮子仅仅是为了满足笔者个人的需要。 一、成
子类的构造函数 子类可以有自己的构造函数 子类没有构造函数,默认系统会调用父类的构造函数 子类有自己的构造函数,系统会先运行父类的构造函数,随后运行子类的构造函数,对子类对象进行覆盖和拓展 即不论子类有没有构造函数,创建子类对象时,父类构造函数都将被调用 class student: //创建s