- 博客(12)
- 收藏
- 关注
原创 日志框架
分离 统一的日志接口层:日志门面(日志的一个抽象层) JCL、SLF4J(Simple Logging Facade for Java)、jboss-logging 实现的抽象层 log4j、logback、log4j2(借log4j之名)、JUL(java utils logging) log4j的使用 使用方法 导入slf4j包 导入log4j包 导入适配包 log4j与log4j2的区别 log4j只需一个jar包 <dependency> <g
2020-12-08 19:52:01
134
原创 复杂度分析
复杂度量级 常量阶 对数阶 线性阶 线性对数阶 平方阶 指数阶 阶乘阶 粗略分为两类:多项式量阶和非多项式量阶。其中非多项式量阶的标红,这种算法问题叫作NP(Non-Deterministic Polynomial)问题 ...
2020-12-08 11:57:40
108
原创 kmp算法
prefix table(前辍表) 字符串a b a b c 最长前后辍 0 a 0 a b 1 a b a 2 a b a b 0 a b a b a c 最后的0不要 最前加一个 -1 前辍表 a b a b c -1 0 0 1 2 求前辍表 void prefix_table(char pattern...
2020-06-02 08:24:24
145
原创 第8章 下半部和推后执行的工作
软中断 软中断在编译期间静态分配,不像tasklet能被动态地注册或注销。软中断由结构体softirq_action表示 struct softirq_action{ void (*action) (struct softirq_action *); } kernel/softirq.c中定义一个包含有32个该结构体的数组 static struct ...
2019-05-28 20:25:46
115
原创 第7章 派遣函数
派遣函数是Windows驱动程序中的重要概念。驱动程序的主要功能是负责处理I/O请求,其中大部分I/O请求是在派遣函 数中处理的。 用户模式下所有对驱动程序的I/O请求,全部由操作系统转化为一个叫做IRP的数据结构,不同的IRP数据会被“派遣”到不同的派遣函数(Dispatch Function)中 7.1 IRP与派遣函数 IRP的处理机制类似Windows应用程序中的“消息处理”机制,...
2019-05-26 22:20:40
219
原创 3 资源管理
条款 13 以对象管理资源 void f() { Investment* pInv = createInvestment(); *** delete pInv; } 若操作区过早的return会造成内存泄露,为确保函数的返回值能正常释放,需将资源放进对象内,当控制流离开f,该对象析构函数会自动释放那些资源 auto_ptr是个“类指针...
2019-05-26 21:26:16
98
原创 8 定制new和delete
条款50 了解new和delete的合理替换时机 想要替换编译器提供的operator new或operator delete三个理由 1 用来检测运用上错误 new后没有delete,或多次delete 2 强化效能 编译器的operator new和operator delete主要用于一般性,定制版的效果往往更好 3 收集使用上的统计数据 写一个定制型operator new...
2019-05-26 20:32:04
190
原创 第6章 windows内核函数(字符串操作)
6.1字符串操作 6.1.1. ASCII字符串和宽字符串 char(ASCII字符串)一个字节 wchar_t(宽字符串)两个字节 在构造字符串时使用关键字"L",编译器会自动生成所需的宽字符 wchar_t *str = L"abc"; 在驱动程序开发中,DDK替换成CHAR和WCHAR CHAR *str ="hello"'; KdPrint("%s\n",str); ...
2019-05-20 15:10:52
447
原创 linux设置磁盘分区
指令 lsblk -f 查看磁盘 1、增加磁盘 2、设置分区 指令 fdisk /dev/sdb 接着 n 增加新分区 3、格式化mkfs -t ext4 /dev/sdb1 4、挂载 mount /devsdb1 /home/newdisk 挂载到newdisk文件夹 这种方式只是暂时挂载 5、umount /dev/sdb1或/home/newdisk 卸载 ...
2018-08-19 21:13:45
304
原创 复数
定义复数类,实现对复数的相加,相乘和相除操作#include using namespace std; class Complex { private: float real; float image; public: Complex(){real=0;image=0;}; Complex(float r,float i):real(r),image(i){}; float
2018-01-12 12:19:54
507
原创 洗牌
#include using namespace std; struct node { int data; //牌的大小 int num; //牌所在位置 node *next; }; node *transform(node *head) { int i=1; node *p=head->next; node *start,*r; r=s
2018-01-10 22:52:19
185
原创 判断IP是否正确
#include #include using namespace std; bool judge(string a) //判断函数 { int n=a.size(),count=0,b[3]={0},j=0; for(int i=0;i<n;i++) //有非法字符 if(!((a[i]>='0'&&a[i]<='9')||a[i]=='.'))
2018-01-08 09:59:12
2447
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人