堆栈的应用(1) 平衡符号 C++实现
«Data Structures and Algorithm Analysis in C++» –《数据结构与算法分析c++描述》 Mark Allen Weiss著 人民邮电大学出版 中文版第72面,堆栈的应用(1) 平衡符号
«Data Structures and Algorithm Analysis in C++» –《数据结构与算法分析c++描述》 Mark Allen Weiss著 人民邮电大学出版 中文版第72面,堆栈的应用(1) 平衡符号
«Data Structures and Algorithm Analysis in C++»–《数据结构与算法分析c++描述》 Mark Allen Weiss著 人民邮电大学出版 中文版第63-71面, 图3-11到3-16,实现的一个用链表实现的列表List类。
在阅读笔记(2)中,我还以为,按《Inside C++ Object》中文版199面(以后页码都以侯捷中文版为准)示例所描述的那样
“直接以类似={a,b,c}的方式为一个类赋初值。。。这个语法我以前一直以为只能在POD的struct下用。。。结果就算这个类有函数,也照用不误。”
今天的实际测试,证明以前我的认识还是对的,当一个结构中有函数的时候(即不是POD)的时候,列表初始化(explicit initializtion list)不可用,无论是VS2005还是g++都会报错。
就我仔细分析了原文后,感觉可能本来lippman仅仅是描述不清,但是被侯捷翻译后就成了完全的错误了。
因为你永远也不可能完全弄清楚C++在你背后做了多少工作,所以你永远都会需要sizeof来帮助你确认你的判断。我从刚开始学C++到现在sizeof是用的不断,直到现在读《Inside C++ Object》还是会碰到。简直是无语。呵呵,用了这么多次的sizeof,少说也是有点经验的:)其实还是用宏的奇技淫巧而已,不推荐广泛使用。 《Inside C++ Object》中文版83面的虚继承问题,在我g++版本上跑的结果是1,4,4,4,在VS2005 SP1版本上跑的结果是1,4,4,8。说明g++在编译器的优化上比MS还是走的远一点。。。。MS的优化总是走一些偷懒的奇怪路线:)实打实的东西又不做。。。。。。。从VC5.0到现在好像还是没有进步。。。。(说的严重了,仅仅是这一点吧)
书其实看完了,因为实在公司抽中午吃饭剩余时间看的,所以其实一直没有好好的试验一下,现在将书带到家里好好的一个一个将感兴趣的测试一下了。
NRV(Named Return Value)是我阅读《Inside C++ Object》碰到的第一个感兴趣的东西,书上面有Lippman的测试数据和侯捷的测试数据。当然,对于VS的效率一直没有报太大希望,但是不至于这个Lippman所说的编译器的义不容辞的优化都不做吧。可能因为侯捷用的VC5.0实在太老了,于是我自己决定测试一下。
C++宏是把双刃剑:它因无类型检查而危险,但在条件编译、调试和代码生成等高级场景下,又是不可或缺的强大工具。
主要是服务器端开发的相关经历,而监控系统也算是直到目前为止,自己负责的最大的一个工作内容了,前后开发周期长达3~4个月,最后的维护几乎持续了半年以上。受益匪浅,这几乎也是我开发独立的服务端程序的绝唱, 后来逐渐的真正融入游戏的开发团队,开始了游戏逻辑服务器的开发,这是后话.
探讨C++中new的内存初始化:书中Vector实现未显式初始化,但测试发现g++会自动清零,与Windows下行为不同,作者强调应显式初始化。
本文是数据结构学习笔记,作者用纯正的Bash脚本实现了三种随机数组生成算法,并分享了完整代码。
用C++/Lua/Python/Bash四种语言实现生成随机数组的三种算法,并附代码对比不同语言的实现差异。