- 博客(26)
- 资源 (4)
- 问答 (1)
- 收藏
- 关注
原创 windows几个内存分配函数
malloc,operator new,VirtualAlloc,HeapAlloc,GlobalAlloc,LocalAllocmallocmalloc是C/C++运行期库函数,它最终调用HeapAlloc从堆里面分配空间。operator newoperator new是C++运算符。它最终调用HeapAlloc从堆里面分配空间。VirtualAll
2012-04-26 13:43:47
812
原创 C#协变和抗变
本文为了表述清楚,一些说法不是很规范。比如,把方法赋值给委托,意思是,用这个方法作为委托构造函数的参数。MSDN里面有句话是:.NET Framework 3.5 and Visual Studio 2008 introduced variance support for matching method signatures with delegate types in all d
2012-02-16 21:26:52
4448
原创 C# 入门经典
1 C#简介.NET Framework是Microsoft最新的开发平台,目前版本是4。它包括一个公共类型系统(CTS)和一个公共语言运行时(CLR)。用.NET Framework编写的应用程序首先编译为CIL(以前叫MSIL)。在执行应用程序时,JIT把CIL编译为本机代码。应用程序编译后,把不同的部分链接到包含CIL的程序集中。3 变量和表达式以#开头的任意关键字实
2012-02-12 09:29:55
1676
原创 TCP/IP详解
1 概述以太网数据帧的物理特性是其长度必须在4 6~1 5 0 0字节之间。U D P数据与T C P数据基本一致。唯一的不同是U D P传给I P的信息单元称作U D P数据报(UDP datagram),而且U D P的首部长为8字节。由于T C P、U D P、I C M P和I G M P都要向I P传送数据,因此I P必须在生成的I P首部中加入某种标识,
2012-02-03 16:25:44
754
原创 iterator_traits和__type_traits
iterator_traitsSGI STL中的实现如下所示:struct input_iterator_tag{};struct output_iterator_tag{};struct forward_iterator_tag{} : public input_iterator_tag {};struct bidirectional_iterator_tag : pu
2012-01-17 13:31:40
943
原创 C++的模板特化及STL中iterator_traits模板的偏特化
C++中有类模板和函数模板,它们的定义如下所示:类模板:templateclass C{//...};函数模板:templatevoid func(T1 p1,T2 p2){//...};特化包括全特化和偏特化,全特化也叫简称特化,所以说特化的时候意思就是全特化。特化就是对所有的模板参数指定一个特定的类型,偏特化就是对部分模板参数指定特定的类型。
2012-01-12 11:34:10
3528
原创 关于extern "C"
如果要混合链接C和C++的代码,就需要用到extern "C"。1 C++要到C的函数如果在.c文件里面定义了一个函数void func(int para),在.cpp文件中要用到该函数,那必须在C++代码(可以放cpp文件中或头文件中)中声明该函数,这样编译的时候才能通过,否则编译器会提示找不到该函数的定义。声明的方法必须是:extern "C"void func(int
2012-01-11 12:55:22
589
原创 算法导论 - 第25章 每对顶点间的最短路径
每对顶点间的最短路径的算法有三种,每一种都可以检测图是否存在weighg小于0的cycle。前两种算法用了动态规划的方法,最后一种算法对每个定点计算单源最短路径。与求单源最短路径的算法不同,求每对顶点间的最短路径的算法采用网的矩阵表示法(除了最后一种算法,最后一种算法采用图的邻接表表示法)。用矩阵W表示一个网,其中矩阵的元素W(i,j)表示顶点i到顶点j的edge的weight。如果顶点i
2011-12-16 22:50:34
1715
原创 算法导论 - 第24章 单源最短路径
单源最短路径的算法有两种:Bellman-Ford算法和Dijkstra算法。求最短路径,如果最短路径上存在weight小于0的cycle,则不存在最短路径。因为只要在这个cycle上多循环几次,该路径的weight就会降低。因此求最短路径的weight时,应该判断最短路径上是否存在weight小于0的cycle,如果存在weight小于0的cycle,则无法对该图求最短路径,因为没有意义。假
2011-12-14 18:48:43
777
原创 C# 中的引用类型和值类型
C#中所有的类都是引用类型,大部分基本类型是值类型,基本类型中也有一些是引用类型,包括string、object。数组也是隐式的引用类型。那么什么是值类型,什么是引用类型?主要区别包括:1在内存中的位置不同,2使用方式不同。1 内存中的位置不同值类型是在系统的堆栈中分配空间,引用类型是在系统的堆中分配空间。2 使用方式public class MyClass{ p
2011-11-13 15:13:36
851
1
原创 关于移位操作
左移:不管是有符号数还是无符号数,数位都往左移动n位,右边用0补足。如果左移的位数超过整数本身的位数,结果不知道。VS上测试结果是从头开始。例子(VS,32位机器):int类型,原始值0x1,左移31位后是0x80000000。左移32位后是0x1。原始值0x11,左移31位后是0x80000000,左移32位后是0x11。unsigned int类型,同上。右移:右移包括
2011-11-12 21:56:11
720
原创 Linux kernel
Spin locks are useless in a uniprocessor environment. When a kernel control path tries to access a locked data structure, it starts an endle
2011-09-22 20:14:16
438
转载 一些链接
深入浅出之正则表达式 http://www.cnblogs.com/dragon/archive/2006/05/08/394078.html
2011-09-21 11:14:36
301
原创 Regular Express
一 字符集字符集用[]来存放要寻找的字符的集合。1 *表示重复0次或多次,+表示重复1次或多次,?表示重复0次或1次{min,max}用来表示重复次数,{0,1}等于?,{0,}等于*,{1,}等于+。“.”匹配一个单个的字符而不用关心被匹配的
2011-09-21 11:12:06
302
转载 Linux Shell
1 Linux下运行当前目录下的程序为啥要加./因为默认情况下,当前目录是不加入到环境变量PATH中的,所以需要指定程序的路径2 单引号,双引号双引号可以防止通配符扩展但允许变量扩展。单引号更严格一些。它可以防止任何变量扩展。比如 #!/bin/s
2011-09-20 00:13:22
403
转载 vim 配置文件 ,高亮+自动缩进+行号+折叠+优化
From http://apps.hi.baidu.com/share/detail/31767352将一下代码copy到 用户目录下 新建文件为 .vimrc保存即可生效; 如果想所有用户生效 请修改 /etc/vimrc (建议先cp一份)
2011-09-19 19:11:20
311
原创 Ubuntu下安装GTK+步骤
在终端下输入:sudo apt-get install build-essential #这将安装gcc/g++/gdb/make 等基本编程工具sudo apt-get install gnome-core-devel #这将安装 libgtk2.0-dev
2011-09-18 10:53:46
739
原创 Unix Network Programming - 多进程服务器需解决的三个问题
1 当派生子进程来处理客户连接时,必须捕获信号SIGCHLD2 当捕获信号时,必须处理被中断的系统调用。比如当子进程结束时会向父进程发送信号SIGCHLD,如果这时父进程被阻塞在系统调用内部,会产生问题。最好是让内核重新启用该系统调用。3 SIGCHLD的信号处理程序必须
2011-09-12 15:25:41
349
原创 Unix Network Programming
将ip地址的字符串表示转为二进制数字形式:IPV4:int inet_aton(const char *strptr,struct in_addr *addrptr); //返回:1字符串有效,0字符串无效in_addr_t inet_addr(const
2011-09-11 14:22:17
433
原创 Linux文件权限
Linux文件权限Linux文件的权限用16位的域来表示。最高4位表示文件类型,接下来3位是修饰位,剩下的9位是访问权限位。4位的文件类型3位修饰位9位访问权限位4位文件类型:文件类型符号常量掩码
2011-09-09 22:26:51
760
原创 i386的页机制
i386CPU不仅有段机制,而且支持页机制。一个32位的逻辑地址经过段机制映射成线性地址后,还要经过页机制映射成32位的逻辑地址。与页机制有关的寄存器有:CR3,CR0CR0的最高位PG是页映射机制的总开关,如果PG位是1则开启页映射机制。CR3寄存器用来存放页面
2011-09-01 19:05:51
486
原创 i386的段机制
i386中与段机制有关的寄存器有:CS(16bits),DS(16bits),SS(16bits),ES(16bits),GDTR(32bits),LDTR(32bits),用于存放“影子”描述项的寄存器。CS,DS,SS,ES之所以是16位宽度,是为了与之前的CPU兼容。
2011-09-01 18:48:23
549
原创 《算法导论》学习笔记-图的基本算法
图有两种表示法:邻接表和邻接矩阵。对稀疏图,用邻接表表示比邻接矩阵节省空间。图分为有向图和无向图。关于图的算法有:对有向图和无向图:广度优先搜索,深度优先搜索。有向无环图:拓扑排序有向图:强连通子图无向图:最小生成树,有Kruskal 和 Prim
2011-08-25 23:40:58
417
原创 Word中如何将多级列表与标题样式关联起来
在“开始”标签页,“段落”子标签中,点击“多级列表”按钮右端的小箭头,选择“定义新的列表样式”,打开“定义新的列表样式”对话框。点击左下角的“格式”按钮,选择“编号”,打开“修改多级列表”对话框。在右上角的“将级别链接到样式”中选择样式即可。
2011-08-24 22:32:37
12316
转载 跟我一起写 Makefile 转自 优快云陈皓
原文地址:http://blog.youkuaiyun.com/haoel/article/details/2886作者专栏地址:http://blog.youkuaiyun.com/haoel概述——什么是makefile?或许很多Winodws的程序员都不知道这个
2011-08-19 11:31:35
783
原创 zombie process and orphan process
在windows下,一个进程中的线程可以调用CreateProcess来创建一个新进程。在新的进程运行之前,它们的关系可认为是父子关系。当新进程运行之后,它们之间不再是父子进程关系,而是两个平等的进程。而在Linux下,一个进程通过调用System,fork等函数创建一个新进
2011-08-07 22:33:29
1350
ASP.NET Identity当role不匹配时的问题
2015-12-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人