- 博客(14)
- 资源 (1)
- 收藏
- 关注
原创 c++ Meta Templates & Haskell(Functional Programming) 和编译期插排
C++ Meta Templates ProgrammingC++ 果然是一个语言联邦…Hello Worldtemplate <int n>struct add { static constexpr int value = add<n - 1>::value + n;};template <>struct add<1> { st...
2019-05-18 18:05:40
331
1
原创 利用FLEX & BISON 快速实现简单的C 语言编译器前端
FlexFlex是一个生成词法分析器的工具,它可以利用正则表达式来生成匹配相应字符串的C语言代码,其语法格式基本同Lex相同。格式LEX的源文件由三个部份组成,每个部分之间用顶行的 `%%’ 分割,其格式如下:定义部份%%规则部份%%用户附加C语言部份 手册-&amp;amp;amp;gt;Flex, version 2.5 怎么用就不赘述了….主要就是用这个词法生...
2018-07-20 21:19:32
21426
3
原创 编写浏览器迷宫游戏的外挂(误..
背景 xiyoulinux兴趣小组 的免试题蛮有意思的,第三关要求不仅要有脑洞,还是得有代码编写的能力的. 第三关入口打开就是这个样子了… 迷宫这么大,时间肯定不够. 可以,写代码吧…用程序跑回溯法一说到走迷宫第一个想到就是回溯法了.(先解决问题,时间还是不够那再想其他办法) 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的...
2018-04-30 20:43:46
410
转载 Intel 80x86(IA-32) Assembly Language OpCodes
Intel 80x86(IA-32) Assembly Language OpCodes The following table provides a list of x86-Assembler mnemonics, that is not complete. Most of them can be found, for others see at www.intel.com Int
2018-02-06 16:28:42
1882
原创 徒手撸个http服务器(三)------epoll 实现
epoll_wait(2)SYNOPSIS#include <sys/epoll.h>int epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout);DESCRIPTIONepoll_wait()系统调用等待文件描述符epfd引用的epoll实例上的事件. 事件指向的内存区域将包含可用于调用者的事件.
2017-08-19 11:39:57
798
翻译 徒手撸个http 服务器(二) ----epoll系列函数
以下函数均在 epollDESCRIPTIONLevel-triggered and edge-triggeredproc interfacesepoll_createDESCRIPTIONepoll_createepoll_create1RETURN VALUEERRORSNOTESepoll_ctlDESCRIPTIONepoll
2017-08-13 00:42:28
623
原创 让bios在引导时打印hello world
BIOS 中断 BIOS 中断调用( BIOS interrupt calls),为一些软件提供使用BIOS 上的一些功能.一些操作系统在系统引导时也使用BIOS以检测并初始化硬件资源.需要使用的中断主要使用INT 10h 中断,是一个视频服务中断. The BIOS receives requests to perform functions through software inter
2017-08-08 14:35:54
1000
原创 不要重新定义继承而来的缺省参数值
–effective c++ item 37首先,简化一下问题.你只能继承两种函数:virtual 和 non-virtual 函数 .而重新定义一个继承而来的non-virtual函数永远是错误的.所以现在只用讨论继承一个带有缺省参数的virtual 函数.这样遵守规范的理由就显而易见了:virtual 函数 是 动态绑定 ,而缺省参数却是 静态绑定 .动态绑定&静态绑定静态绑定 对象的所谓静
2017-07-21 14:46:06
487
原创 不要重新定义继承来的非虚函数
–effective c++ item 36首先考虑下面的代码class B {public: void foo() { std::cout << "test_B\n"; }};class D: public B {public: void foo() { std::cout << "test_D\n"; }};
2017-07-21 01:01:36
1405
原创 明确拒绝编译器的好意。
——effective c++ item 6 & item 5编译器的好意 但是编译器还不是每次都会添加复制构造函数和赋值运算操作符。。例如template<class T>class
2017-05-09 23:34:10
277
原创 堆排序
堆排序堆排序不同于其他排序算法,它的时间复杂度为O(n lgn),与并归排序相同。但是,不同于并归排序的是,空间复杂度为O(1)。堆排序具有空间原址性。堆一种完全二叉树.它又被分为大根(顶)堆和小根(顶)堆.实际以数组存储但是,你可以将一个堆看成一个完全二叉树大顶堆 若想从小到大排序就需要构建大顶堆,否则构建小顶堆。 顺序储存 由图可以清楚的看出大顶堆的性质——一颗根节点大于其余节点的完
2017-04-26 13:39:31
350
原创 计数排序
计数排序基本借鉴与<<算法导论>>第三版计数排序的基本思想 对于每一个元素x,确定小于x的元素个数。利用这一信息,就可以直接把x放在输出数组中的位置上了。例如,如果有17个元素小于x,则x就应该在第18个输出位置上。当有几个元素相同时,这一方案要略做修改。 代码#include <iostream>#include <cstring>using namespace std;
2017-03-13 17:53:46
366
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人