读《STL 源码剖析》及感悟

  买这本书有一段时间了,断断续续的,我对这方面的兴趣也不是特别大,很早之前看过了《深入实践C++ 模板编程》、《深入理解C++11 :C++11 新特性解析与应用》,而且,经过这两年的工作时间使用C++,我也认识到,一些技术层面的问题并不是那么重要,研究好了C++的机制和trick,对于项目而言帮助也不是最关键的。所以,我的关注重点还是停留在去了解了C++程序的高效性同时保有了强大的表述能力,不得不佩服C++委员会。
  我忘记了在哪里看到过这样的一句评论:STL是给库的作者准备的,普通的开发者只需要使用即可。以我的经验,我深深的认可了这个意见。倒不是说上层开发者就不去研究STL,我只是觉得,对STL的研究和学习,不应该成为上层开发者的主要目标和引以为傲的能力。也不是职业生涯中的都不需要研究STL了。我所说的不建议深入,是指工作时间不长,没有写底层lib需求,甚至连上层业务如何实现都还没有摸清的人,应该把关注的重点放在程序的功能究竟如何才能实现,更好更稳定的运行,而不是给一个功能设计加上了诸多限制条件,以试图优化代码让程序跑的更快。一些人批评STL慢,当然,它当然是慢的,甚至都没有tbb的多线程安全的容器快,但是,你使用了tbb之后就懵逼了,这东西完全无法调试啊。我认为,不应该是你觉得STL的一些容器慢了或者浪费内存了,就试图写一个类似的模板容器出来,试图证明自己比STL的诸多作者更加牛逼,而是意识到STL的通用性和必然的限制,简单的绕过限制和避免最坏情形即可。从这个面上讲,也是有必要去学习STL的。总结一些,学习一个东西并不一定是为了自己就能够写出一个更加牛逼的,大多数情况下,你也是做不到的。
   说当下吧,这两年,我们的CAD程序都是使用原生的C++开发的,Qt做界面,算法部分重点在物理引擎和渲染引擎。物理引擎所处理的业务简单,无需复杂抽象,简单的几个类就可以了,一些算法部分其实都是C函数,class只是作为一个namespace来用而已。 渲染部分,都是用shader做,和C++也没有什么关系,大多是数据的封装而已,根本无需复杂的C++特性。CAD部分是有很多业务需要C++来做业务抽象,我们CAD团队成员都有深厚的CAD从业经验,多浙大等名校毕
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值