c/c++
文章平均质量分 77
hackmind
爱游戏,爱探索,爱分析的三爱青年。
展开
-
一道大学c语言作业题
刚看酷壳里的关于求素数的算法,感觉比我以前写的效率高多了。但酷壳里的判断是否是质数的函数稍微有点问题,没有判断负数,零和1的情况。我自己补充一下,同时对于他们如何想到用平方根这种方法判断感到很好奇。原创 2011-02-28 17:43:00 · 1636 阅读 · 3 评论 -
ubuntu下搭建cocos2dx编程环境-上
这大半年一直在开发flash游戏,用到的编程语言是actionscript和c++。所以这次公司决定开发手游端的话,C++不是很生疏,这是个好消息。坏消息是由于现在网页游戏还没有上线,所以公司并没有给配备mac电脑。好吧,之前由于一直在用Mac开发,所以很喜欢这种开发环境。没有杀毒软件的骚扰,很多工具直接是集成的。漂亮的界面。都指引我选择Unix平台,由于没那么多钱买个macbook pro,原创 2013-06-19 17:21:14 · 13797 阅读 · 8 评论 -
ubuntu下搭建cocos2dx编程环境-下
前两篇介绍了cocos2d-x 下linux开发环境配置和android 环境配置问题。在这其中遇到很多问题,所以最后一篇分享一下在处理这些问题时,我是如何解决的,是怎么想的。同时总结一些解决这类问题的方式。避免少走弯路。首先通过问题列表的形式来回答一下部署遇到的基本问题。一、问答列表1、ubuntu下不能识别手机问题 这是因为android sdk 中 platform-too原创 2013-06-21 14:51:07 · 5842 阅读 · 0 评论 -
Centos环境下部署游戏服务器-编译
游戏服务器是在windows环境开发的,相关跨平台的东西在这里不谈了,只谈如何将Visual Studio 工程转换到Linux下编译。这里涉及到的软件分别为:Centos版本为6.4,Visual Studio 2008,Eclipse cdt。 为了后面的知识容易理解,先简单说下C++编译原理,有四个过程。原创 2013-09-04 18:00:14 · 2747 阅读 · 0 评论 -
没有傲慢也没有偏见
通过上面的二段代码,发现返回下一个迭代器更加合理,因为在循环内删除,需要指向下次迭代器的值。从这些历史的变迁里,微软让我更加敬佩,他们没有盲目的去崇拜或者遵循权威,而是通过自己对技术的理解,修正了标准库的不足。而同样标准库也是知错能改,并没有因为自己的错误,或者自己订立标准库的便利,而固执不变。这正是我们做技术的应给学习的地方:不盲目权威,知错就改。原创 2013-12-04 22:22:08 · 1486 阅读 · 0 评论 -
两种不同随机算法设计理念
随机算法在程序设计里的使用频度就不用我说了。一般我们用到的随机算法都是伪随机算法,什么叫伪随机算法呢?伪随机算法意思是假如知道第一个随机种子和随机算法的话就可以推算出下一个随机数。通常我们程序里都是通过当前时间作为随机函数的第一个随机种子,然后将随机函数返回的值作为下一个种子,随机函数是一个公用函数,每个用户的请求都会触发一个新的随机种子,所以说是随机的。很多公司都有自己的一套随机算法,下面看一下原创 2011-05-03 20:13:00 · 3647 阅读 · 3 评论 -
C++的发展方向是对的嘛?
C++越来越复杂,C++11添加了很多新特性,这是往正确的方向发展吗?添加新的内容给程序员带来了什么?对于我自己来说,用过lua, JavaScript, ActionScript的人,非常羡慕其它语言里的foreach, 匿名函数,等等特性。这次C++里添加了这些新特性,不仅实用,并且效率不减,对于我来说对这次的升级非常欢迎。但是事情总是有两面性的,下面分析一下带来的坏处和好处。 坏处:原创 2014-04-14 21:03:19 · 3959 阅读 · 0 评论 -
C++11之decltype
在C++中经常要用到很长的变量名,如果已经有变量和你将使用的变量是一个类型,即可使用decltype关键字来申明一样的类型变量。原创 2014-04-20 23:12:34 · 5760 阅读 · 1 评论 -
C++11 之auto
在定义变量的时候必须申明类型,c++是强语言类型,在编译阶段需要知道类型,这样的好处是程序效率更高,而动态语言不需要类型申明的需要自推导变量类型。使用了auto是不是c++效率会变慢?完全不是,因为在编译阶段编译器已经帮程序员推导好了变量的类型。前提条件是编译器可以根据当前的程序的状态推导出变量类型。只是编译器更加智能,我猜想编译时间岂不更长了。原创 2014-04-15 22:35:58 · 11298 阅读 · 0 评论 -
C++11 之for 新解
C++11这次的更新带来了令很多C++程序员羡慕已久的for range循环,每次看到javascript, lua里的for range,心想要是C++能有多好。这次不负众望,再也不用羡慕别家人的for range了。原创 2014-04-21 21:24:52 · 45786 阅读 · 5 评论 -
C++11之for 新解(2)
如何解决这种学了就忘了得问题呢?有人提出三个境界,how,what, why。如果想真正的掌握这些知识,需要付出更多的精力去了解这东西为啥这样用,发明这些知识的作者当时是如何想得,自己通过已知的知识,是否能推导出相应的一种模式。通过这种方式的理解,相信学习知识的效率更高。原创 2014-04-22 22:33:02 · 4929 阅读 · 0 评论 -
c++ 的前世今生
c++ 编程语言的历史可以追溯到1979年,当时Bjarne Stroustrup 正在为他的博士学位工作。BS 曾近有幸用过simula这种语言,通过名字可知道这种语言主要被模拟器使用。BS使用的是simula的变种Simula67,这种语言被认为是第一个支持面向对象编程范式的语言。bs发现这种范式在软件开发中非常有用,但simula在实际使用中速度非常慢。 之后,他开始使用带类的c翻译 2014-04-13 13:35:14 · 2045 阅读 · 0 评论 -
C++之new和malloc区别
在C++程序员面试中,很容易被问到new 和 malloc的区别。偶尔在quora上逛,看到Robert Love的总结,才发现自己只知道里面的一两项就沾沾自喜,从来没有像这位大牛一样去仔细思考这些问题,借着这篇文章仔细探讨下这个经典问题。原创 2014-09-28 17:22:34 · 2913 阅读 · 0 评论 -
cocos2dx 在android平台打开文件问题
我们有一个项目是基于cocos2dx + lua,在网络部分用到了protobuf, 在初始化protobuf的时候需要读取本地文件,用lua的io.open读取文件在windows,ios上是没问题的,android由于apk是压缩文件,所以io.open无能为力,因为zip就是整个文件。在网上查到资料可以通过调用cocos2dx里的getFileData() 这个函数来读取文件内容,getF原创 2014-09-28 16:06:54 · 6144 阅读 · 0 评论 -
游戏状态机的设计与实现
状态机的模型是非常简单,但并不是每个人都能设计好的状态机。因为好的状态机不仅需要对程序的把握要比较到位,同时需要对整个业务的理解比较到位。好的状态机使程序变的更加简洁,易扩展,容易查找bug,还非常稳定。坏得状态分割只会让程序晦涩难懂。原创 2014-10-22 08:40:46 · 9273 阅读 · 7 评论 -
c++11之初始化列表
C++的学习中,我想每个人都被变量定义和申明折磨过,比如我在大学笔试过的几家公司,都考察了const和变量,类型的不同排列组合,让你区别有啥不同。反正在学习C++过程中已经被折磨惯了,今天再来看看重温下那段“辉煌的历史”。原创 2014-05-14 22:46:08 · 26780 阅读 · 8 评论 -
ubuntu下搭建cocos2dx编程环境-中
上篇文章里讲了在ubuntu下部署cocos2d-x开发环境,这篇文章主要示范在ubuntu下部署cocos2d-x android开发环境。分开写就是因为我看很多文章里都将这两件事情混杂着写。这样在其他人查阅的时候,会有很多的噪音。其实这也是互联网的一大特色,有海量的信息,但其中充斥着大量的无用信息。google的出现帮大家将海量的资源整理查找出来,但google也不是万能呢,它只能帮你把信原创 2013-06-20 15:56:58 · 4927 阅读 · 0 评论 -
c与c++的界限
最近比较多的思考编程语言的优劣,以及编程语言的发展轨迹,由于自己对编程语言的历史并不是了如指掌,所以肯定有很多漏洞,既然有想法了就要记下来,不能让它们白白的流逝了。 c语言其实我用的并不多,是大学里正统的学习过的一门语言,学完这门语言后,虽说是新手,可接触其它语言的时候总是用c语言的习惯去写程序。比如说,遇到包含文件就很慌张,比如会考虑函数的包含顺序,比如说分不清数组为啥要有固定初始化原创 2013-06-12 10:56:47 · 1842 阅读 · 1 评论 -
工作一年开发总结
记的非常清楚,去年的五月十号早晨到公司报道。转眼间一年过去了,一年里学到了很多也明白了很多事情。写个总结,就当是在自己的程序人生里下个assert。在这里小小的暂停下,弹出自己现在是一个什么境界。这既是对这一年来的总结,同时也可以对自己将来做个打算。好的,现在开始踏上咱的程序之路。原创 2011-05-10 08:55:00 · 1979 阅读 · 2 评论 -
一个分号引发的血案
最近在看《Data Structuresand Algorithms》这本书,书里对数据结构和算法进行了简单的描述,并且用伪码进行了实现。伪码毕竟和代码还是有很大不同的,书的说明里说有C#写的源码,下载了一份。由于本人对C#不太熟,所以看起来比较吃力,并且这个还是开源项目,我想想何不将这个开源项目翻译成C++供大家学习研究呢,正好下午没事就简单实现了书里的单链表,学过数据结构的人都知道这是最简单的一种数据结构。写成通用的模板结构,很显然可以增加代码的复用性。我就大概的实现了一下,没想到原创 2011-05-13 18:01:00 · 2149 阅读 · 6 评论 -
求序列里连续子序列最大和
前两天再看《数据结构与算法分析C++描述》这本书的时候,第二章有个讲求序列里连续最大子序列和的问题。讲了四种算法,第四种算法时间复杂度是0(n),当然已经是最优的了。算法原理讲的挺清晰的,我大概实现了一下,随便输入了一组测试用例,仔细一看结果有点不太对,我先把书中的例子贴上来,大家看一下能发现问题不。其实问题不大,只不过令我感到奇怪的是这书都第三版了,这么明显的问题竟然没有发现,不知道是出版社翻译有问题,还是说原作者写的不对。由于没有原版书就不清楚了,看过原版的可以告诉我一声。好的,现在写原创 2011-05-16 18:41:00 · 1282 阅读 · 0 评论 -
奇怪的程序编译时间
前两天外网版本和发布版本对应不上了,导致外网有大量崩溃。由于上传人员的失误,紧急补丁尽然没有pdb,没有pdb文件的话就没法调试dump文件找到问题所在。还好后来找到了以前备份的pdb,勉强找到了问题所在,确定是外网版本问题。问题找到了,一切都好办了,可是奇怪的事情发生了。原创 2011-05-24 09:34:00 · 1327 阅读 · 0 评论 -
C++里那些不为人知的事-成员函数
c++类里申明一个公共的成员函数,通常有几种方式去访问。 1、class obj; 2、class *pObj = new class; 3、静态函数的话,可以用class::fun(); 4、还可以通过this指针访问。 第一种情况可以通过"."操作符访问到成员函数,看过汇编后就是通过obj的类型找到相应的成员函数。 第二种情况下是通过指针访问成员函数,汇编显示这种方式原创 2011-06-26 23:01:00 · 1306 阅读 · 0 评论 -
程序开发基础学习一(uml设计)
今天到新公司第二天,复习一下uml设计,总结一下。写代码就如写文章,需要一个大概的纲领和结构。uml图有两种类别范畴,结构图和行为图。通过uml图可以很清晰看出类的成员属性,方法,类与类之间的关系。把类的基本属性和类与类的基本关系梳理清楚了。才可以写出易扩展,更稳定的程序。同时其原创 2011-07-14 16:06:02 · 1966 阅读 · 0 评论 -
程序开发基础学习二(C++ Google Style 命名规则)
无规矩不成方圆,新的岗位就需要服从团队的编码规则。很开心团队用的是Google的C++编码规则,大概看了下Google 的编码规则,正如九天翔雁说的:“Google的 C++ Style Guide远不仅是一个传统意义上的代码书写风格指导,对于C++的方方面面做出了Google的原创 2011-07-15 11:04:09 · 13019 阅读 · 3 评论 -
程序开发基础学习三(boost::bind 函数学习)
工作中要用到boost库,我的学习习惯是在学习新的知识的时候,将整个知识点的历史和发展现状过一遍。这样既能激发学习兴趣,同时对于知识点的记忆和学习能形成一个完整的系统结构。boost库最新版本是1.47,今天主要总结boost库里一个常用的函数bind,由于之前从来没有用过这个函原创 2011-07-17 17:12:25 · 2274 阅读 · 0 评论 -
程序开发基础学习四(boost::signal2 函数学习)
在游戏编程中,新的策划需求总是在迭代不停。。。。。。,对于游戏程序员肯定深有感触吧,遇到这种情况咱只能小小的抱怨下,活还得干。尤其是遇到耦合到很多类的时候,要是直接实现不加抽象的话,那咱的代码就要被拆的七零八落,并且在代码维护性和程序健壮性上问题很大。前面说到的问题其实就是常听到原创 2011-07-18 18:06:52 · 5518 阅读 · 0 评论 -
程序开发基础学习五(json配置、解析文件,c++篇)
在游戏中加载解析配置文件家常便饭。以前用过xml,对多维数组结构良好的应用加上xml配置文件遵循html规则,xml还是特别方便的,可是当数据量比较大的话,一堆助记符不仅写起来比较烦,出现问题查起来很费眼睛。今天用一种新的文件解析方式,语法挺简单的,但真正将这个小型库配置到自己的原创 2011-07-19 17:28:47 · 6092 阅读 · 7 评论 -
Iphone客户端程序员半年工作总结
来公司四个半月了,从对客户端游戏编程的小白慢慢的也能写一些东西了,当然了这里最感谢的人就是九天了,对于九天其它的好我就不说了,就是感觉九天为了团队,为了项目,他在很用心的做每一件事情。就如武侠小说里的人物,有的练习功夫强身健体,有的为了取得江湖地位,有的为了报仇雪恨,当然有很少一部分当做兴趣爱好研究,比如说周伯通,他就是个武痴,对什么功夫都感兴趣。可是这些人里没有一项符合九天的,我认为九天喜欢将事原创 2011-11-30 01:09:10 · 16073 阅读 · 25 评论 -
那些年我们一起写的随机函数
前言随机数是人们生活中的必需品,比如说喝酒时的划拳,骰子,国人喜欢的斗地主,麻将,福彩,游戏中那就跟不用说了。所以说随机数的设计是关乎公平性最重要的决定因素。如果说前面提到的事件都可以预测的话,我想没有人会去参与这些事件。随机数的用途数学 (统计计算, 模拟)游戏(随机掉落宝物,爆击概率)安全(随机密码,证书)测试(白盒测试)随机数生成器的类型原创 2012-07-29 13:45:15 · 8668 阅读 · 1 评论 -
体验C语言内存操作的魅力之范型
用C语言来实现堆栈的范型,体验C语言的真正魅力。相比C++里的范型,用C语言实现感觉更真切,更踏实,同时体会到了对内存把控的快乐,我想再这样下去我会上瘾。这里面唯一要说的两处:分别是realloc和程序第28行。 realloc在分配内存时,如果指针先前分配的内存范围后有足够的未分配的内存,则在末尾直接加上需要扩展的内存,反之分配一块新的内存,将之前的字符拷贝进去。对应图二原创 2012-08-24 17:24:00 · 2859 阅读 · 0 评论 -
刨根问底系列之C++ const 挖掘
一、 const的作用: 1、限定const指定的值的修改 ex1.1: const int a = 2; //a = 3; error: assignment of read-only variable 就如C语言里宏一样,a会被放到符号列表里,不过a是内部链接的(内部链接是指只在当前文件内是可见的)。当原创 2012-09-10 11:31:24 · 1804 阅读 · 0 评论 -
刨根问底系列之C++ 类型转换挖掘
在日常的编码生活中,程序员时刻与变量的申明,初始化,赋值,运算交互。数据类型有很多种,在不同的编程场景中用到不同的数据类型。在不同类型的数据的交互中,难免遇到类型转换。本文通过C++的类型转换来探讨一下数据类型转换的方式,以及在编码中遇到的问题。程序代码中充斥最多的就是隐式转换。隐式转换在程序编译时编译器根据编译规则匹配的转换方式。常见隐式转换分为两种方式,一种是表达式类型的,另一种是函数式的原创 2013-03-26 11:24:38 · 1346 阅读 · 0 评论 -
C++ 虚函数畅谈
0x01:前言虚函数是C++里最重要的概念之一,并且是判定C++是否入门的一个热门问题。今天这篇文章简单谈谈虚函数。0x02:虚函数简介虚函数可以被子类实现函数所覆盖。 virtual是关键字,被定义为virtual的函数才可以被子类覆盖。 虚函数的调用是通过虚函数指针调用。0x03:虚函数原理下面展示的代码皆为伪码,主要为说明虚函数编译和调用过程。class Base{ public原创 2016-09-04 13:15:25 · 1413 阅读 · 0 评论