chuwen
2016-05-10 12:51
采纳率: 66.7%
浏览 2.9k

求问在使用c++ map时的效率问题

一个数组a[10]需要做一些计算,比如,a[2]- a[1],a[8]- a[4].还有其他的一种数组元素做差的计算,现在的问题是我发现程序中数组元素做差的就是那么几个,比如我前面写的那两个。所以实际情况是这些做差的大部分时间是重复的,因此我想用一个map,把这些做差的元素序号以及做差的值存储起来,然后每次在做差之前先查找map如果找到就不用做差了。可是这样是不是效率反而低了?还不如直接两个数组元素做差来的快。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • chuwen 2016-05-10 13:09
    已采纳

    求解答,谢谢啦。我是觉得在这种情况下,是不是用了map反而会降低效率。

    点赞 打赏 评论
  • ljheee 2016-05-10 13:11

    得看具体问题啊,使用STL吧

    点赞 打赏 评论
  • taohe_0 2016-05-10 13:42

    直接相减就好了,这样使用map绝对是浪费。
    做差运算一条CPU指令就完成了,转成map,又是存储、又是查找,这是多少CPU指令才能完成的事情?!
    除非a[10]是复杂的对象,减号运算符中有大量复杂的运算。

    点赞 打赏 评论
  • 吃西瓜的小猪崽 2016-05-13 08:53

    弄个静态局部变量保存运算的结果, 如果参与运算的两项有任何一项发生改变, 则更新静态变量的值. 这样可以尽量避免操作map. 节省CPU.

    点赞 打赏 评论

相关推荐 更多相似问题