boost库的使用

我的经验:
在强调运行效率的场合:
shared_ptr/weak_ptr很好用,尤其是weak_ptr这个能够判断一个对象的生命周期的玩意,可以简化和扩展很多设计。
unordered系列的容器也很不错。
thread+function+bind是异步编程的利器。
signal:这个因为个人比较喜事件驱动这种模型,没用过,不太清楚,但这种回调机制貌似使用场景也很广。
python:结合python很方便,适合快速开发的场合。

在强调开发效率的场合:
正则表达式,这个不用说了,字符串处理的利器。
状态机,可以用很少的代码写出很规范的状态机,还是层次性的。很不错,我很早以前受这个库的启发实现过一个类似的状态机库,用来解析通信协议的,写的代码比别人少,运行效率居然还比其他人写的手工解析的高。
Program Options: 解析程序参数和配置文件什么的,很方便。

一些我个人感觉不是很好的库:
asio,我认为有过度设计之嫌,一般的应用场景很好用,但很难扩展。比如我曾经想在这个库的基础上弄个解析链路层协议的玩意出来,结果代码死活没看懂。当然也可能是我水平太差了。
spirit,炫耀技术的玩具,可以直接用c++直接写BNF,但生成的程序体积巨大,速度巨慢。意义在于展现模板元编程能带来多强大的表达能力,但其他方面意义真心不大。
lambda,和上面差不多,这玩意在c++11以后完全不需要了。

上一篇:js做通讯录的索引滑动显示效果和滑动显示锚点效果


下一篇:java-冒泡排序、选择排序、二分查找