1,STL简介
STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称
STL的代码从广义上讲分为三类:algorithm(算法)
2,游戏开发中使用STL
STL针对C++开发过程中的典型而且常用的问题进行实现
《c++标准程序库》(<The c++ standard library>)是广为流传的讲述STL使用的书;
而且对于在校的学生来说,STL的使用更是面试必遇的问题;
3,using STL with source code and profiler
在使用STL的过程中需要去阅读STL的代码,在写下每个调用时
Use STL instead of being used;
同时需要一些profiler来评测你的程序效率
当对STL的使用变得熟练而且思绪变得清晰,结果即让开发过程变得
另外一方面STL主要用template实现来获得良好的通用性和
而阅读stl代码绝对是学习template极佳的途径
<MODERN C++ DESIGN GENERIC PROGRAMMING AND DESIGN PATTERNS APPLIED>是有关template非常优秀的书;
4,STL&Kiss
Kiss==Keep it simple and stupid
简洁之美贯穿于coder的思考方式和代码风格中
1,make it work
2,make it fast
3,make it beautiful
如果在可以熟练高效的使用STL之后,却时刻下意识的去追求STL
最好淳朴而合理的使用STL;
在coding的开始阶段,我们需要的是尽快把功能实现
feature实现好之后进入优化阶段,此时我们对code的理解
恩恩,我们奉行简洁的原则,我们驾驭STL;
5,自己实现STL?
的确目前大型商业游戏引擎几乎都带有自己的STL实现
恩,首先我们需要了解为什么要重新实现STL;
1,效率&通用性:对于面向多个平台的游戏来说,各个平台的STL
game coder们到一定程度就难以忍受这些,"我们需要更强有力的控制
2,扩展性:STL所提供的功能根本满足不了引擎的需要
所以针对自己实现STL这个问题:自然最好;
当项目开发处于低级阶段:
@对于功能更加强大的基础代码的要求并没有那么强烈,or
@引擎的优化不够成熟,仍旧有优先级更高的优化和实现工作要做
@只对单一平台开发,基于普通STL扩展即可
大可把注意力集中在其他地方,在必要的时候再着手"发明这个轮子"
当项目的确在需要更高的效率,更好的移植性,更好的扩展的时候
开发的工作量和难度,
测试的工作量和项目进度,
在相当长时期内,潜在的给项目带来的不稳定性;
这些都OK的时候,剩下的就是享受编程了哦 ^_^