24小时热门版块排行榜    

查看: 1191  |  回复: 5
本帖产生 1 个 程序强帖 ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

zhenhai308

木虫 (正式写手)

某某

[交流] 【求助】关于vector运行效率问题【已完结】 已有4人参与

小弟是电路专业的,初学c++,用c++做电路功耗算法。但是电路中要处理的数据比较多,常常达到2的十几次,或者几百次。我用stl中的vector容器进行操作,经常会用到insert(),erase(),clear()等算法,而其直接用A.at()(A是vector类的对象)进行数值计算,但是我感觉代码运行时间很长,比我师兄用c写的要多4到5倍。我想请教一下c++高手,给我一点指点,不胜感激!

[ Last edited by 余泽成 on 2010-4-12 at 21:34 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

thisisit

铜虫 (小有名气)


resonant(金币+1):感谢参与,请及时更新您的用户组。 2010-06-22 12:53:29
c++是面向对象的语言,适合做大型的设计,里面有很多包装好了的数据结构和操作,用设计好了的算法可以减少很多工作量,但对于运算量巨大的程序来说,很多都是重复的排序,插入。如果能把C++用到和C的速度差不多,那就是高手了,再接再厉,加油啊。
5楼2010-06-22 08:37:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

tjyl

金虫 (正式写手)


余泽成(金币+1, 程序强帖+1):辛苦了! 2010-04-10 23:40
zhenhai308(金币+1): 2010-04-11 12:31
这个....
C++ primer上好像就说过的吧,对于你这样主要进行数值运算,而且时间非常长,根本就不应该去用什么vector.尤其是你经常insert,当之前自动为vector分配的内存不够时,又会重新分配一个和现有的容器大小相同的空间,etc....
C++里面很多现成有用的东西,表面看起来是为了防止重复造轮子。不过肉吃多了,还是要腻的,没有什么十全十美的东西。
2楼2010-04-10 21:51:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

magic7004

金虫 (职业作家)

★ ★ ★ ★
wangen994(金币+2):感谢参与应助 2010-04-11 10:53
wangen994(金币+2):活动期间额外奖励 2010-04-11 10:53
zhenhai308(金币+1):谢谢 2010-04-11 12:31
zhenhai308(金币+1): 2010-04-12 21:23
vector其实是数组,数组是不适合频繁insert和erase的。
如果需要频繁的insert和erase,建议搂住考虑其他数据结构。
流氓不可怕,可怕的是流氓有文化,有文化又BH的流氓无敌~~!
3楼2010-04-11 09:31:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhenhai308

木虫 (正式写手)

某某

谢谢!我在用list了,感觉快多了!
4楼2010-04-12 21:23:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见