索引速度测试

  晚上认真测了一下hash_map,vector,数组,无索引的效率比较,得到一个比值 54:14:7:4,hash_map的效率让我有点吃惊,毕竟它底层用了vector,hash也是一个整值,却比vector慢了这么多,gprof看到的是迭代器的构造,复制占用了大量的时间。vector的效率比直接用数组低的原因是迭代器的构造和复制。是否可以考虑修改stl的实现把迭代器减少?最后决定把hash_map用vector代替,空间分配方便,效率可以接受,下标是连续的,所以vector可以接受。
  联想到++iter和iter++的比较,前者不如后者符合人的思考习惯,我一直采用后者,现在看来还是要用前者,iterator复制的消耗还是大的。另外google的编码规范也支持前者。

你可能感兴趣的:(Google)