posts - 111, comments - 38, trackbacks - 0, articles - 0
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2012年1月17日

正文内容加载中...

posted @ 2012-01-17 12:14 李大嘴 阅读(2834) 评论(0) 推荐(0) 编辑

2012年1月9日

摘要:由于具有共同的祖先和相同的API,现代的Unix内核有很多共同的设计特点。没有任何意外,Unix通常是一个完整的、静态的二进制文件(聚内核)。这是指,它是一个运行在单个地址空间的单独的大的可执行镜像文件。Unix系统通过需要可分页的内存管理单元(MMU),这个硬件帮助系统加强内存保护并向每个进程提供单独虚拟地址空间。Linux历史上也需要MMU,但特殊的版本也可以运行在没有MMU的硬件环境上。这是一个巧妙的特性,允许Linux运行在没有MMU的小巧的嵌入式设备上,当然这是一个偏学术而不太实用的特性——因为在今天即使是简单的嵌入式系统也通常拥有高级的特性例如MMU。在本书里,我们聚焦在基于MMU 阅读全文

posted @ 2012-01-09 20:07 李大嘴 阅读(3743) 评论(0) 推荐(0) 编辑

2011年10月20日

摘要:【1】柯尼斯堡问题-每条边只经过一次,顶点可以经过多次。定理一:无向连通图G具有一条欧拉路径当且仅当G具有零个或两个奇数次数的顶点。定理二:一个无向连通图是欧拉图,当且仅当改图的定点次数都是偶数。 欧拉路径与欧拉图不同,不需要回到起始点。关联问题1:一笔画问题是柯尼斯堡问题经抽象化后的推广,是图遍历问题的一种。在柯尼斯堡问题中,如果将桥所连接的地区视为点,将每座桥视为一条边,那么问题将变成:对于一个有着四个顶点和七条边得连通图G(S,E)。能否找到一个恰好包含了所有的边,并且没有重复的路径。欧拉将这个问题推广为:对于一个给定的连通图,怎么判断是否存在着一个恰好包含了所有的边,并且没有... 阅读全文

posted @ 2011-10-20 17:55 李大嘴 阅读(370) 评论(0) 推荐(0) 编辑

摘要:【转】http://www.cppblog.com/Sandywin/archive/2007/07/13/27984.html使用stringstream对象简化类型转换C++标准库中的<sstream>提供了比ANSI C的<stdio.h>更高级的一些功能,即单纯性、类型安全和可扩展性。在本文中,我将展示怎样使用这些库来实现安全和自动的类型转换。为什么要学习如果你已习惯了<stdio.h>风格的转换,也许你首先会问:为什么要花额外的精力来学习基于<sstream>的类型转换呢?也许对下面一个简单的例子的回顾能够说服你。假设你想用sprint 阅读全文

posted @ 2011-10-20 17:20 李大嘴 阅读(1173) 评论(0) 推荐(0) 编辑

摘要:C++中好像不区分内部类与嵌套类两个名词。内部类与嵌套类都是指在类中定义类。局部类是指在函数中定义类。(c++不能在函数中定义函数。c++在类中定义的函数也就是成员函数。)(c++内部类与java内部类最大的区别就是:c++的内部类对象没有外部类对象的指针,不能访问外部类对象的非静态成员;java的非静态内部类对象有外部类对象的指针,能访问外部类对象的非静态成员。) 阅读全文

posted @ 2011-10-20 17:18 李大嘴 阅读(1532) 评论(0) 推荐(0) 编辑

2011年9月26日

摘要:memcpy()和memmove()都是C语言中的库函数,在头文件string.h中,其原型分别如下:void *memcpy(void *dst, const void *src, size_t count);void *memmove(void *dst, const void *src, size_t count);它们都是从src所指向的内存中复制count个字节到dst所指内存中,并返回dst的值。当源内存区域和目标内存区域无交叉时,两者的结果是一样的,但如果有交叉呢?先看下图:图的上半部分为源内存区域在目标内存区域右边,下半部分为源内存区域在目标区域左边,源内存区域和目标内存区域都 阅读全文

posted @ 2011-09-26 16:48 李大嘴 阅读(486) 评论(0) 推荐(0) 编辑

2011年9月16日

摘要:1、有一个整数数组,请求出两两之差绝对值最小的值,记住,只要得出最小值即可,不需要求出是哪两个数。View Code 1 using System; 2 using System.Linq; 3 using System.Collections.Generic; 4 namespace ConsoleApplication1 5 { 6 class Program 7 { 8 static Random Rand = new Random(); 9 10 static void Main(string[] args) 11 ... 阅读全文

posted @ 2011-09-16 16:04 李大嘴 阅读(1883) 评论(1) 推荐(1) 编辑

2011年9月14日

摘要:在网上看到此迭代解法,感觉很给力,理解它递归的语义。int zero(int i) { if(i < 5) { return 0; } return (i/5) + zero(i/5); } 阅读全文

posted @ 2011-09-14 20:17 李大嘴 阅读(204) 评论(0) 推荐(0) 编辑

2011年9月13日

摘要:假设一个mp3搜索引擎收录了2^24首歌曲,并记录了可收听这些歌曲的2^30条URL,但每首歌的URL不超过2^10个。系统会定期检查这些URL,如果一个URL不可用则不出现在搜索结果中。现在歌曲名和URL分别通过整型的SONG_ID和URL_ID唯一确定。对该系统有如下需求: 1) 通过SONG_ID搜索一首歌的URL_ID,给出URL_ID计数和列表 2) 给定一个SONG_ID,为其添加一个新的URL_ID 3) 添加一个新的SONG_ID 4) 给定一个URL_ID,将其置为不可用 限制条件:内存占用不超过1G,单个文件大小不超过2G,一个目录下的文件数不超过128个。 为获得最佳性能 阅读全文

posted @ 2011-09-13 19:49 李大嘴 阅读(480) 评论(0) 推荐(0) 编辑

摘要:以下多线程对int型变量x的操作,哪几个需要进行同步:( )A. x=y; B. x++; C. ++x; D. x=1;从表面看上去实在是看不出什么突破口,我们不妨将这些代码译成汇编语言再来分析。01 x = y; 02 mov eax,dword ptr [y] 03 mov dword ptr [x],eax 04 05 x++; 06 mov eax,dword ptr [x] 07 add eax,1 08 mov dword ptr [x],eax 09 10 ++x; 11 mov eax,dword ptr [x] 12 add eax,1 13 mov dword ptr [ 阅读全文

posted @ 2011-09-13 10:08 李大嘴 阅读(6859) 评论(4) 推荐(5) 编辑