队列(queue)的链表(list)实现及循环数组(circular array)实现 C++实现
文章提供了队列的两种C++实现:链表实现和循环数组实现,并附有完整的代码和测试。
文章提供了队列的两种C++实现:链表实现和循环数组实现,并附有完整的代码和测试。
本文用C++实现了基于堆栈的中缀表达式转后缀表达式算法,并展示了如何计算结果。程序支持加、乘和括号,但输入格式要求严格。
文章用C++模板和vector实现了一个简单堆栈,并提供了代码示例和实现说明。
«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个月,最后的维护几乎持续了半年以上。受益匪浅,这几乎也是我开发独立的服务端程序的绝唱, 后来逐渐的真正融入游戏的开发团队,开始了游戏逻辑服务器的开发,这是后话.