hgrany 发表于 2012-04-18 16:06
你往里push_back对象,开销能不大嘛. push_back本身就会产生 replacement new. 更别说resize时的对象复制了. ...
这样在运行时动态创建,然后用完析构的话,耗时就很多
这样节省下来的时间就颇客观,当然只在内存充裕的情况适用
终极办法 随机应变
你把 stl 源码看一遍以后
本质上来说, move ctor就是旧的放弃所有权,新的获得
但很多时候事情并不都是那么完美. 这里所说的设计良好,限制还是挺多的
那些老代码自然不可能有move ctor了. 这种情况下给新类加move ctor是没有意义的
你不可能push_back 一个派生类的实例到存储基类对象的vector中去
实际的性能瓶颈确认起来当然没那么简单
关于 使用那种方法, 我说得很清楚,只有最合适的方法,没有最好的方法,从目前情况看,我提供的方法是修改最少的。 如果在特定的环境下,array比stl list 快上1个数量级也是毫无问题的,关键就是看环境的选择。
至于你喷stl boost烂的做法, 我只想说 我所公事的工程师里有中国最好的c++ 开发者之一,他为boost 写的库,也被要求提供这 提供那,而且boost 本身的库质量是否如你所说如此的烂
请你用你的代码写出些比boost 更棒的东西再来喷。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/) | Powered by Discuz! X3.2 |