09 2013 档案
摘要:转自:http://blog.csdn.net/skyremember/article/details/2941076
STL中map与hash_map容器的选择
这篇文章来自我今天碰到的一个问题,一个朋友问我使用map和hash_map的效率问题,虽然我也了解一些,但是我不敢直接告诉朋友,因为我怕我说错了,通过我查询一些帖子,我这里做一个总结!内容分别来自
alvin_lee ,codeproject,codeguru.baidu等等!
先看看alvin_lee 朋友做的解析,我觉得还是很正确的,从算法角度阐述了他们之间的问题!
阅读全文
摘要:转自:http://www.cppblog.com/guojingjia2006/archive/2008/01/12/41037.aspx
说来惭愧,使用了很久Visual Stdio 2003了,只知道MFC升级到了7.0,ATL也升级到了7.0,对于这两个经典的类库做了一些研究,但一直没有注意C++标准库的变化。
今天尝试的使用了stdext::hash_map这个库,果然不错。下面写下一些心得。
hash_map类在头文件hash_map中,和所有其它的C++标准库一样,头文件没有扩展名。如下声明:
#include
using namespace std;
using namespace stdext;
阅读全文
摘要:一、定义:什么是孤儿进程和僵尸进程
僵尸进程:一个子进程在其父进程还没有调用wait()或waitpid()的情况下退出。这个子进程就是僵尸进程。
孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。
示例:
僵尸进程:一个子进程在其父进程还没有调用wait()或waitpid()的情况下退出。这个子进程就是僵尸进程。
孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。
僵尸进程将会导致资源浪费,而孤儿则不会。
阅读全文
摘要:转自:http://blog.csdn.net/linxinyuluo/article/details/6847851
阅读全文
摘要:转自:http://www.cnblogs.com/Jezze/archive/2011/12/23/2299884.html
在一般的数据结构的书中,树的那章后面,著者一般都会介绍一下哈夫曼(HUFFMAN)
树和哈夫曼编码。哈夫曼编码是哈夫曼树的一个应用。哈夫曼编码应用广泛,如
JPEG中就应用了哈夫曼编码。 首先介绍什么是哈夫曼树。哈夫曼树又称最优二叉树,
是一种带权路径长度最短的二叉树。所谓树的带权路径长度,就是树中所有的叶结点
的权值乘上其到根结点的 路径长度(若根结点为0层,叶结点到根结点的路径长度
为叶结点的层数)。树的带权路径长度记为WPL= (W1*L1+W2*L2+W3*L3+...+Wn*Ln)
,N个权值Wi(i=1,2,...n)构成一棵有N个叶结点的二叉树,相应的叶结点的路径
长度为Li(i=1,2,...n)。可以证明哈夫曼树的WPL是最小的。
哈夫曼编码步骤:
阅读全文
摘要:一、题目
◆3.21③ 假设表达式由单字母变量和双目四则运
算算符构成。试写一个算法,将一个通常书写形式
且书写正确的表达式转换为逆波兰式。
实现下列函数:
阅读全文
摘要:转自:http://blog.csdn.net/simplebelief/article/details/6347149
在程序设计中,可能碰到需要对字符串数学表达式求值的问题,常用的方法是解析表达式,生成二叉树,然后进行计算。编译器就是使用这种方法来解析程序中的表达式的。这种方法实现起来有点难度,需要考虑运算符的优先级,括号的配对,堆栈的使用等等。我们正常情况下看到的数学表达式如果用二叉树遍历的话,恰好是中序遍历,故叫做中序表达式。除此之外,还有前序表达式,后序表达式。如:a+b+c(中序),++abc(前序),ab+c+(后序),如果表达式含有×,/,()等就更复杂了。
后缀表达式也称逆波兰表达式 因其使表达式求值变得轻松,所以被普遍使用。
阅读全文
摘要:linux中fork()函数详解(原创!!实例讲解) (转载)
一、fork入门知识
一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,
也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。
一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都
复制到新的新进程中,只有少数值与原来的进程的值不同。相当于克隆了一个自己。
阅读全文
摘要:转自:http://www.cnblogs.com/dolphin0520/archive/2011/07/13/2105236.html
图的遍历有两种遍历方式:深度优先遍历(depth-first search)和广度优先遍历(breadth-first search)。
1.深度优先遍历
基本思想:首先从图中某个顶点v0出发,访问此顶点,然后依次从v0相邻的顶点出发深度优先遍历,直至图中所有与v0路径相通的顶点都被访问了;若此时尚有顶点未被访问,则从中选一个顶点作为起始点,重复上述过程,直到所有的顶点都被访问。可以看出深度优先遍历是一个递归的过程。
阅读全文
摘要:转自:http://blog.csdn.net/hanruikai/article/details/7639007
二叉树的遍历:
D:访问根结点,L:遍历根结点的左子树,R:遍历根结点的右子树。
给定一棵二叉树的前序遍历序列和中序遍历序列可以惟一确定一棵二叉树。
二叉树的深度优先遍历的非递归的通用做法是采用栈,广度优先遍历的非递归的通用做法是采用队列。
深度优先遍历包括前序、中序、后序遍历;
广度优先遍历即为按层次遍历。
阅读全文
摘要:static_cast, dynamic_cast, reinterpret_cast, const_cast区别比较
阅读全文
摘要:转自:http://blog.csdn.net/sjyzhxw/article/details/7606634
1-20的两个数把和告诉A,积告诉B,
A说不知道是多少,
B也说不知道,
这时A说我知道了,
B接着说我也知道了,
问这两个数是多少?
分析:
阅读全文
摘要:转自:http://www.cnblogs.com/jerry19880126/archive/2012/08/05/2623975.html
1、有一个虚拟存储系统,若进程在内存中占3页(开始时内存为空),若采用先进先出(FIFO)页面淘汰算法,当执行如下访问页号序列后1,2,3,4,5,1,2,5,1,2,3,4,5,会发生多少缺页?
A、7 B、8 C、9 D、10
阅读全文
摘要:转自:http://blog.csdn.net/yahohi/article/details/7451671
阅读全文
摘要:一、题目:
当用户输入一个合法的表达式后,能够返回正确的结果。能够计算的运算符包括:加、减、乘、除、括号;能够计算的数要求在实数范围内。对于异常表达式给出错误提示。(要求使用静态栈数据结构。)
阅读全文
摘要:转自:http://blog.chinaunix.net/uid-15723764-id-3366757.html
qsort是万能数组排序函数,必须要学会使用,简单的数组自然不用说,这里主要讨论一下字符串数组的使用。
首先看一下qsort的原型:
void qsort(void *base, size_t nmemb, size_t size,
int(*compar)(const void *, const void *));
正确使用这个函数要注意几点:
1.base要传数组的首地址
2.size传的是每个元素的大小
3.正确编写compare函数
阅读全文
摘要:含有通配符的字符串匹配(递归与非递归)
阅读全文
摘要:转自:http://blog.chinaunix.net/uid-20682147-id-76416.html
日前某君给我出了这样一道题目:两个字符串,一个是普通字符串,另一个含有*和?通配符,*代表零个到多个任意字符,?代表一个任意字符,通配符可能多次出现。写一个算法,比较两个字符串是否相等。 我花了四个小时写出两种算法来解决这个问题,简单地测试了一下,好使!
阅读全文
摘要:转自:http://blog.chinaunix.net/uid-24118190-id-3896712.html
C++的STL提供了一些封闭好的数据结构和算法,方便日常编程。
所谓 “工欲善其事,必先利其器。”请在学习了STL后,选择一种合适的工具来解决括号配对问题。
Containers library - cppreference.com
http://en.cppreference.com/w/cpp/container
这里使用stack解答了一个括号配对问题,但这个代码没有使用“最合适”的工具。
请选择一种合适的数据结构实现本题“扩展”要求:
阅读全文
摘要:转自:http://www.cnblogs.com/passingcloudss/archive/2011/05/04/2034209.html
【作者按】网上搜集的题目,自己整理了一下,写了个解答,所有程序均在VS2010上调试通过!
如果各位看官有更好更高效更巧妙的方法,请不吝指教!
阅读全文
摘要:转自:http://blog.csdn.net/zdl1016/archive/2009/10/11/4654061.aspx
我想说一句“我讨厌KMP!”。
KMP虽然经典,但是理解起来极其复杂,好不容易理解好了,便起码来巨麻烦!
老子就是今天图书馆在写了几个小时才勉强写了一个有bug的、效率不高的KMP,特别是计算next数组的部分。
其实,比KMP算法速度快的算法大把大把,而且理解起来更简单,为何非要抓住KMP呢?笔试出现字符串模式匹配时直接上sunday算法,既简单又高效,何乐而不为?
说实话,想到sunday算法的那个人,绝对是发散思维,绝对牛。当我在被KMP折磨的够呛的时候,我就琢磨,有没有别的好算法呢??琢磨了半天也没想出个所以然来。笨啊,脑子不够发散。
阅读全文
摘要:2013-09-11 2013-09-11
锐捷2013校园招聘笔试题
转自:http://blog.csdn.net/lanyan822/article/details/8010474
题不多,全是c语言题,下面只是一些不太确定答案的题。
阅读全文
摘要:转自:http://blog.csdn.net/hugang012070/article/details/8916203
程序员面试题精选100题:求从1到n的正数中1出现的次数
阅读全文
摘要:转自:http://blog.csdn.net/hugang012070/article/details/8916215#comments
题目:求 1+2+…+n,要求不能使用乘除法、for、while、if 、else 、switch 、case 等关键字以及条件判断语句(A?B:C )。
阅读全文
摘要:mapData.erase(i); // erase以后 i已经失效,不能再用i++;
i++;
那么erase操作直接让i失效,对失效的i进行加一操作也是失效的。
阅读全文
摘要:转自:http://blog.csdn.net/bichenggui/article/details/4215344
Map是一种关联容器,用来存储key-value数据。其中的key是用来查找的关键字,value是实际存放的值。
一个特定的关键字只能与一个唯一的值相联系。map是由一对一对的键值(key/value)所组成的排序结构体,
键值是读一无二的(unique)的。
map通常是以平衡二叉查找树来实现的,因此map对插入,删除,查找能保证log(N)的时间复杂度。对于
海量的数据的插入和查询,map是一个不错的选择。
本文将对map的常见操作进行讲解。不当之处,欢迎批评指正(bicheng.gui@gmail.com).
阅读全文
摘要:转自:http://www.cnblogs.com/luxiaoxun/archive/2012/10/16/2725760.html
socket 类型
阅读全文
摘要:Windows socket 基础
Windows socket是一套在Windows操作系统下的网络编程接口。它不是一种网络协议,而是一个开放的、支持多个协议的Windows下的网络编程接口
阅读全文
摘要:转自:http://blog.csdn.net/cyblueboy83/article/details/2052267
我也回复一个!!
其中INADDR_ANY就是指定地址为0.0.0.0的地址,这个地址事实上表示不确定地址,或“所有地址”、“任意地址”。
一般情况下,如果你要建立网络服务器,则你要通知服务器操作系统:请在某地址 xxx.xxx.xxx.xxx上的某端口 yyyy上进行侦听,并且把侦听到的数据包发送给我。这个过程,你是通过bind()系统调用完成的。——也就是说,你的程序要绑定服务器的某地址,或者说:把服务器的某地址上的某端口占为已用。服务器操作系统可以给你这个指定的地址,也可以不给你。
阅读全文
摘要:题目:
已知有个rand7()的函数,返回1到7随机自然数,让利用这个rand7()构造rand10() 随机1~10。
阅读全文
摘要:转自:http://www.cnblogs.com/dolphin0520/archive/2011/08/24/2151846.html
KMP算法
在介绍KMP算法之前,先介绍一下BF算法。
阅读全文
摘要:转自:http://blog.csdn.net/ts173383201/article/details/7850120
教你初步了解KMP算法
作者: July 、saturnma、上善若水。 时间; 二零一一年一月一日
-----------------------
本文参考:数据结构(c语言版) 李云清等编著、算法导论
引言:
在文本编辑中,我们经常要在一段文本中某个特定的位置找出 某个特定的字符或模式。
由此,便产生了字符串的匹配问题。
阅读全文
摘要:概念
全排列的生成算法有很多种,有递归遍例,也有循环移位法等等。但C++/STL中定义的next_permutation和prev_permutation函数则是非常灵活且高效的一种方法,它被广泛的应用于为指定序列生成不同的排列。本文将详细的介绍prev_permutation函数的内部算法。
按照STL文档的描述,next_permutation函数将按字母表顺序生成给定序列的下一个较大的排列,直到整个序列为降序为止。prev_permutation函数与之相反,是生成给定序列的上一个较小的排列。二者原理相同,仅遍例顺序相反,这里仅以next_permutation为例介绍算法。
先对序列大小的比较做出定义:两个长度相同的序列,从两者的第一个元素开始向后寻找,直到出现一个不同元素(也可能就是第它们的第一个元素),该元素较大的序列为大,反之序列为小;若一直到最后一个元素都相同,那么两个序列相等。
设当前序列为pn,下一个较大的序列为pn+1,这里蕴藏的含义是再也找不到另外的序列pm,使得pn pm pn+1。
阅读全文
摘要:转自:CSDNhuangxy10的专栏
时间:2012年9月27日 地点:鼎好大厦10层
考试时长:1小时
阅读全文
摘要:作为一个软件开发者,你一定会对网络应用如何工作有一个完整的层次化的认知,同样这里也包括这些应用所用到的技术:像浏览器,HTTP,HTML,网络服务器,需求处理等等。
本文将更深入的研究当你输入一个网址的时候,后台到底发生了一件件什么样的事~
阅读全文
摘要:引言
HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。
HTTP协议的主要特点可概括如下:
1.支持客户/服务器模式。
2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
5.无状态:HTTP协议是无状态
阅读全文
摘要:原文:http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/
作为一个软件开发者,你一定会对网络应用如何工作有一个完整的层次化的认知,同样这里也包括这些应用所用到的技术:像浏览器,HTTP,HTML,网络服务器,需求处理等等。
本文将更深入的研究当你输入一个网址的时候,后台到底发生了一件件什么样的事
阅读全文
摘要:找工作要面试,所以在这最难就业季,很多人对面试题特别感兴趣,津津有味地研究,孜孜不倦地学习。
但实际上这些面试题目良莠不齐,许多题目根本上就是垃圾和毒药。
比如问“空结构体”的尺寸是多少,实际上C语言中根本就没有“空结构体”,因为结构体的定义本身就规定结构体不可以为空。所以,“空结构体”的尺寸是多少这样的问题是驴唇不对马嘴的伪问题。
阅读全文
摘要:软件开发模式对比(瀑布、迭代、螺旋、敏捷)
阅读全文
摘要:一、4句敏捷宣言
个体与交互 胜过 过程与工具
可以工作的软件 胜过 面面俱到的文档
客户协作 胜过 合同谈判
响应变化 胜过 遵循计划
二、12条敏捷原则
阅读全文