
编程学习
caoeryingzi
这个作者很懒,什么都没留下…
展开
-
数组元素求和,指针和引用的应用,共四种方法
#include using namespace std;//传递指向数组第一个和最后一个元素的下一位置的指针 int sum1(const int *begin, const int *end) { int sum = 0; while (begin != end) { sum += *begin; begin++; } return sum; }//传递数组大小原创 2008-06-12 11:08:00 · 2792 阅读 · 0 评论 -
程序调试
<br />从上周五开始,程序就开始出现问题,查了几天了。知道哪些地方出错了,开始时是因为添加的一部分出错了,去掉这部分后加的功能,程序就没问题了。后来发现,是因为顺序容器vector的使用溢出了。回顾vector的使用,并不会是因为数据的维度太大,而出现问题,因为我的数据维度虽然大,可不至于那么大,而且电脑配置好,再者比起来文本数据的处理,我的数据维度并不算什么。后来,觉得肯定是程序的某个地方出问题了,就像我老公说的一句话,一切问题都是程序的问题,任何奇怪的现象出现,都是因为程序有误。再继续查找,一个一个原创 2010-12-06 14:42:00 · 581 阅读 · 0 评论 -
tips
<br /> <br />在编程中,单引号和双引号的区别<br /> <br />“a”是一个字符串,一般占用两个字节"a/0"。一般在字符串后面补有0字符,表示结束。sizeof("abcd")为5,并不是4.而strlen("abcd")的大小是4.也就是说,sizeof表示的是占用的内存量大小,而strlen表示的字符串长度,不包括最后一个结束的字符。<br />'a'是一个字符,只有一个字节。<br /> <br />“abcd”是对的,而‘abcd’不对。<br /> <br />另在,接着siz原创 2010-12-09 22:24:00 · 523 阅读 · 0 评论 -
单源最短路径问题
<br /><br />单源最短路径问题<br />解决方案:Dijkstra提出按各顶点与源点v间的路径长度的递增次序,生成到各顶点的最短路径的算法。既先求出长度最短的一条最短路径,再参照它求出长度次短的一条最短路径,依次类推,直到从源点v 到其它各顶点的最短路径全部求出为止。问题的提出: 给定一个带权有向图G与源点v,求从v到G中其它顶点的最短路径。限定各边上的权值大于或等于0。<br /><br />求单源最短路径的具体步骤<br /><br />将图G中所有的顶点V分成两个顶点集合S和T。以v为源点转载 2010-10-19 20:37:00 · 828 阅读 · 0 评论 -
线程
<br />原来总是觉得线程这个东西是个很神秘的玩意,不敢轻易使用和开启。<br /> <br />通过最近一段时间的使用,感觉还是没那么神乎其神了。<br /> <br />程序,其实就是程序员向计算机提交的一系列任务,通过代码告诉计算机先执行那个,然后再执行哪个,按照顺序依次执行下去,最后输出结果。这是一个流程,任务A结束后,执行任务B。<br /> <br />但是,当我们发现,我们需要执行一个任务C。任务C并不是总要执行,如果任务C需要执行,我们就任务A然后任务C,然后任务B。但是,当任务C不需要执原创 2010-11-09 15:03:00 · 569 阅读 · 0 评论 -
configuration
唉,我又犯了低级错误。把configuration用new configuration()来处理了。这样的话,test case中传入configuration时就总是传不进去啊。并且通过job传进去的configuration常数也不能工作。原创 2012-03-23 13:42:45 · 515 阅读 · 0 评论 -
svn 提交代码
svn每次提交代码我都很紧张。因为老出错今天又出错了,因为我提交code之前做了reformat,结果把所有的文件都改了,结果我提交code时都不知道自己到底修改哪里了。这是最悲剧的一次啊。changelist一大堆。所以以后在提交code时,要记住do one thing.在修改code前首先svn up.修改code,做完code review之后,提交原创 2012-04-10 16:43:38 · 897 阅读 · 0 评论 -
Apache Pig中文教程集合
出处:http://www.codelast.com/Apache Pig是用来处理大规模数据的高级查询语言,配合Hadoop使用,可以在处理海量数据时达到事半功倍的效果,比使用Java,C++等语言编写大规模数据处理程序的难度要小N倍,实现同样的效果的代码量也小N倍。我根据自己在工作中的学习和总结,写了如下一些Apache Pig中文教程,供大家参考。文章来源:http:转载 2012-04-26 10:37:42 · 7781 阅读 · 2 评论 -
web服务
擦,对web我好像只停留在使用阶段。没有兴趣去研究过,工作后,才去了解cookie是怎么种的,我们能拿到那些cookie,汗吧这几天在搭建一个服务器,光是server的概念都没法深入到脑海。我明明知道一个server启动了,去调用就行了,可我还是觉得很空,想不起来去使用。所以,在每次要用到时,我就会想A要调用B,那A之前我要去怎么激活B。唉,B明明是已经建立好的server啊。we原创 2012-07-11 16:10:53 · 466 阅读 · 0 评论 -
intellij创建快捷方式到桌面
http://forum.ubuntu.org.cn/viewtopic.php?f=50&t=124425&sid=1e7bffb676eeae9efdc47ea64de49f31就是在桌面上右键几下就行了。我开始还看了一段youtubu视频,后来才发现这个方式真是好用。原创 2012-09-06 12:17:41 · 7425 阅读 · 0 评论 -
标准程序结果
呵呵,今天被鄙视,同事说了,所有标准程序,运行成功就返回0,不成功返回非0.原来这样啊,所以说,java代码我们总是要求这样返回值,而脚本我知道是这个样的,pig也是这样的,如果job执行成功则返回0,否则非0.原创 2012-09-06 17:25:44 · 641 阅读 · 0 评论 -
queue
这几天看别的同事的代码,他是仿照mahout来写的,其中用到了queue,看了看java api,其实我觉得我理解的不到位。测试和看别人的代码才明白,其中的poll,remove等都是对基本元素进行操作的,并不是说把head取出来,别的元素就可以随之访问了。我原来以为只要我取到head,就可以得到所有元素了,现在看来是一个head一个head接着取下去的,所以用while操作来访问queue的所有原创 2012-10-10 15:52:23 · 1388 阅读 · 4 评论 -
mahout
这几天看推荐系统,系统看了一下mahout的基于item-based的推荐系统。大概因为我是一个编程菜鸟,所以对开源的东西,一直不怎么热心。我的关注点在算法上,不在程序上。这个玩意虽然听说那么久了,可真正去了解,也是最近。感觉写的还是很不错的,至少开始时,如果你想在别人的代码基础上改改来用,这个还是很好的参考的。而且感觉现在mahout做的越来越普及了,都涉及到dirichlet了。再者,原创 2012-10-12 11:28:33 · 1169 阅读 · 0 评论 -
google research
http://research.google.com/pubs/ArtificialIntelligenceandMachineLearning.html原创 2012-10-17 16:40:09 · 2092 阅读 · 1 评论 -
写code的规范
最近开始看设计模式,^_^,觉得还挺有意思的,主要是例子比较好玩。关于类的继承啥的,还有接口啥的。我觉得第一节还不错,我感觉充分体现了什么叫封装,把不变的放在一起,把变的拿出来,这样你在继承时会更放心不会把变化的那部分错误继承过来,而对需要变化的部分,反正你每次都要变化,所以每次都要从写的。而变化的部分,因为变化比较多,所以写成了接口形式。周末继续看吧,我觉得我也属于印象派人士,书上写原创 2012-08-24 11:41:11 · 919 阅读 · 0 评论 -
echo printf,read
unix echohttp://unix-cd.com/vc/www/39/2007-06/2409.htmlecho显示转义字符,要加-e.昨天想自动生成一个文本文件,生成后,总是空格,不是\t,后来同事让我用printf,总是可以了。但是我感觉echo用的不对,今天才知道是我没有添加-eprintf可以看shell脚本编程学习指南第七章,写的很详细。以后要习惯用原创 2012-09-26 15:36:46 · 557 阅读 · 0 评论 -
code convention
最近要重点关注的:java code convention养成良好的编程习惯,能大大提高工作效率,不能再因为这些问题让自己一遍又一遍修改code,浪费了自己的时间,降低了效率,真是不值得。原创 2013-07-29 13:25:19 · 1409 阅读 · 0 评论 -
处理器
我们通常说的64位技术是相对于32位而言的,这个位数指的是CPU GPRs(General-Purpose Registers,通用寄存器)的数据宽度为64位,64位指令集就是运行64位数据的指令,也就是说处理器一次可以运行64bit数据。 64位平台不管是在性能上,还是在功能上,都要领先于目前的32位平台,目前主流的32位处理器在性能执行模式方面存在一个严重的缺陷:当面临大量的数据流时,32位的寄存器和指令集不能及时进行相应的处理运算。32位处理器一次只能处理32位,也就是4个字节的数据;而64位处转载 2010-10-09 16:15:00 · 646 阅读 · 0 评论 -
良好的编程习惯
一直想好好培养一下自己的编程能力,不是想做coding,只是想能够更好更快地实现自己的算法。进步了不少,可越来越觉得自己知之甚少,无语得很其实。在变成过程中要养成一些良好的习惯。变量尽量使用时才定义,这样有两个好处,一是变量是什么样的,在使用时一清二楚。再者,避免重复定义或者错误使用。比如,循环变量的定义,如果提前定义了,那么很容易出现一个循环内外使用了同样一个变量。这样子的话,当然出错了。如果你不是提前定义的,那么在循环内部一个变量也不用定义,那就注意了,很可能是使用了外循环的变量。再者,同样级别的循环变原创 2010-09-07 16:22:00 · 1139 阅读 · 0 评论 -
学好C++(转来的)
如何学好C++,我没有别的办法更好的办法给你们了,唯一的办法就是读书,读大量的书,就可以解决。要把C++作为日常语言,而不是一种程序语言,这样就好办了。其次要大量大量的实践,只有实践才能真正掌握编程的技术。有人又要问我,那么我应该读什么书才好?没有时间怎么办?我只能对你们说,没时间的话,就别学C++了,做你们喜欢做的事。生活中没有C++,也同样美好。如果你准备学,一定要学好,那么我开个书单,应该问题不是甚大。首先肯定要读一读Bjarne Stroustrup的The Design and Evolution转载 2010-06-23 14:54:00 · 628 阅读 · 0 评论 -
关于srandom 和random
<br />转来的<br /> <br />在vc++中程序中用了srandom()和random(),头文件为stdlib.h,但编译出现错误error C3861: “srandom”: 找不到标识符。 <br /> 原因是现在vc++编译器的库函数中没有randomize()和random(),分别用srand()和rand()代替了。<br /> #include <time.h> //定义关于时间的函数 <br /> 一般在用到time(NULL)(当前时间)函数时需要转载 2010-06-24 19:46:00 · 2150 阅读 · 0 评论 -
动态存储
每一个程序在执行时都占用一块可用的内存空间,用于存放动态分配的对象,此内存空间称为程序的自由存储区(free store)或堆(heap)。C语言程序使用一对标准库函数malloc和free在自由存储区中分配存储空间,而C++语言则使用new 和delete表达式实现相同的功能。原创 2010-05-05 16:50:00 · 435 阅读 · 0 评论 -
new delete
因为用到了容器,vector,list的使用,尤其是删除操作,是十分要小心的东西。光是vector,list的删除就让我查了很多资料。感觉c++primer上说的不详细。在使用new delete一般都不会忘记这一对搭档使用的规则。可情况复杂一点就容易忘记。本来vector的内部,用的是结构体形式的数据,可是由于需要传递参数,为了避免取地址,我改成结构体指针了。可在vector的erase操作时,原创 2010-05-05 16:51:00 · 395 阅读 · 0 评论 -
remove
在使用stl中的函数remove时,注意,此时remove来自stl中,而不是系统文件删除函数的remove。因此,此时使用remove前,需要包含头文件 #include如果不包含头文件的话,会报错:remove : function does not take 3 parameters。原创 2010-05-05 17:12:00 · 642 阅读 · 0 评论 -
编译,头文件
这两天看了写孙鑫的VC++视频,觉得这套内容真的讲的很好。感觉每点都能了解很多东西,当然如果是高手了,可能就不需要了。真想去上个这种培训班。头文件是不进行单独编译的,a.h,a.cpp,在编译源文件.cpp时,如果遇到了#include "a.h",那么会在此处把a.h文件展开,即在此处把a.h的内容完全拷贝过来,进行.cpp的编译。原创 2010-05-05 16:49:00 · 442 阅读 · 0 评论 -
随机数生成
用VC6.0产生随机数,真是不可靠。我发现循环的时候,很多时候只是出现同一个数。要说是随机数,感觉随机性太小了。总是出现同一个数,太差劲了。太没随机性了。原创 2010-05-05 16:55:00 · 408 阅读 · 0 评论 -
erase
转自疯子空间 2.使用STL中通用算法或容器成员函数删除元素的方法以上手工编写for循环代码删除容器中元素的方法也有一些问题,如果判断条件特别复杂,又有循环判断的话,循环中间又有异常处理的话,++itVect的位置就要小心放置了,稍不留意就要出错。所以手工编写代码删除容器中元素的方法不太安全,代码重复,也不够优雅,要注意的地方很多。对于这种情况,可以考虑使用STL中通用算法remvoe()原创 2010-05-05 17:13:00 · 609 阅读 · 0 评论 -
计算机读书推荐
来自北邮论坛数据结构部分修改于2010年1月30日 程序语言部分修改于2010年3月18日 本科不是念计算机的,师弟链接了大牛amiao版内开的书目,感觉太多了,对于不是计算机科班出身的人来说,是很难看完那么多的。仔细删减了再删减,列一下我觉得的计算机软件学科至少应该过一遍的8本,只涵盖“程序语言(C & C++)”、“数据结构”、“操作系统”、“计算机网络”和“计算机系统”五个主题,其他的诸如原创 2010-05-06 21:22:00 · 1084 阅读 · 1 评论 -
容器的使用
顺序容器的使用在STL中,容器的使用真是比指针还容易出错的。最近本人在用vector存储东西,因此写点关于这个容器的一点点记录。首先,记住容器其实是指针操作。对vector来说,访问每一个元素,有迭代器可以访问,之所以推荐用迭代器,有几个原因。但是,我目前觉得最大的好处就是,方便函数调用时的参数传递。当然,在进行删除erase,插入等操作时,需要迭代器。但是,迭代器也是一种指针,它具有原创 2010-05-05 16:52:00 · 549 阅读 · 0 评论 -
C++static使用
字号:<span id="btnBigFont" style="cursor: pointer; font-weight: normal;" onclick="function onclick(){changeFont(1);}">大 <span id="btnNormalFont" style="cursor: default; font-weight: bold;" oncl原创 2010-05-05 16:54:00 · 2958 阅读 · 0 评论 -
顺序容器中remove
紧接着上面几个转载的内容来写。只是这次写的是自己的使用。由于stl中的remove函数是algorithm中的一个,因此在使用remove之前必须将该头文件库包含进来。在remove中有三个参数,第一个第二个分别是要操作的指针范围,第三个参数是元素内容。template class ForwardIterator, class T > ForwardIterator remove原创 2010-05-05 17:11:00 · 685 阅读 · 0 评论 -
remove 3
不管它背后藏有多好的原则, std::remove 的行为都让我感到十分惊讶, 这个算法的设计根本是对"最小惊讶原则"的背离, 调用这个方法之后, 原始的元素个数竟然不变. 如果仅有一个被删除元素且是最后一个元素, 则整个容器的表现看上去根本没受任何影响, 如下: vector vec; double_pair dp ; dp = make_pair(1.1, 3.2) ; v原创 2010-05-05 17:12:00 · 587 阅读 · 0 评论 -
c++
<br />我觉得我还没有形成真正的C++编程习惯,比如头文件,比如函数的使用,偶尔还会时不时的使用C中的一些函数,头文件的包含当然全是C形式的,基本上。所以,我觉得我要加强C++编程的思想,逐渐去掉C的影响。原创 2010-07-08 10:59:00 · 562 阅读 · 0 评论 -
程序调试
<br />这两天正式开始调试程序,昨天调试的结果仍然是计算过程中出现的某些计算量很大,这个不是什么好事,最后在求likelihood时,就得到了0,问题现在就出在这里了。<br /> <br />首先考虑了三种可能的解决办法,从易到难,一点点尝试吧。<br /> <br />今天发现一个bug,又是用容器时出现的bug,容器的大小在删除其中节点时,要动态调整才对.编程序一定要小心啊。<br />原创 2010-07-08 10:15:00 · 586 阅读 · 0 评论 -
vector使用
<br />1.删除操作和添加操作,尤其是在判断vector的大小时,有删除和添加操作时,需要注意大小是变化的。<br /> <br /> <br />vector<int>vec;<br />for (int i=0; i<vec.size(); i++)<br />原创 2010-07-08 11:43:00 · 549 阅读 · 0 评论 -
编程调试
<br />说实话最近调试程序整的有点恶心了。不过正经工作还是要干的。没办法,硬着头皮往前走。<br /> <br />实现gaussian-wishart分布的采样和likelihood的计算,predictive的计算。在计算过程中,我用到了矩阵的乘法和求逆矩阵,这两个小函数也是让我出错的一个地方,在求逆矩阵时,调用的函数将原来矩阵改变了。这个我没注意到,其实,我采用的程序写的不好,一般函数输入都不改变输入的,如果要有值的话,一般放在输出或者返回值了。可找的程序这样写的,我这个大意了。求行列式的地方也是原创 2010-07-20 16:34:00 · 969 阅读 · 0 评论 -
protobuffer
caffe 里面贯穿始终的文件格式就是protobuffer和glog了,不得不佩服,google确实很牛啊,恭维的话不说,熟悉一下protobuffer吧。其中官方文档什么的,网上搜吧,还有一系列别人在ubuntu和windows下的使用。把caffe中的代码粘贴下来如下://读取保存为text文档的proto文件,读进来,并通过Parse解析。void ReadProtoFromT原创 2014-04-01 21:21:23 · 13494 阅读 · 0 评论