[问题] 是否使用vector?

楼主: clonsey1314 (Clonsey)   2019-01-30 21:43:05
开发平台(Platform): (Ex: Win10, Linux, ...)
Win10
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
g++
问题(Question):
最近刚接触vector, 很方便, 省了很多初始化的工作
程式码也变得简洁多, 也较好维护
但是同时也降低的程式的效能(很明显)
请问若没有要做太多复杂的增删,是否继续使用array或pointer就好?
程式码里同时有vector和pointer/array混杂这样的coding style会不会不好?
谢谢
作者: james732 (好人超)   2019-01-30 21:51:00
我觉得应该要找出你效能降低的原因譬如是不是用传值导致太多不必要的复制?应该要用传reference或传pointer而不是传value
作者: Feis (永远睡不着 @@)   2019-01-30 23:24:00
1. 用参考. 2. 看能不能改用 array<T>
作者: steve1012 (steve)   2019-01-31 01:00:00
通常vector不会是效能瓶颈 你确认过了吗
作者: s06i06 (三条鱼)   2019-01-31 01:46:00
Vector 效能不会比array差
作者: s9041200 (小明阿)   2019-01-31 11:23:00
传参考,不然拉成全域,自己维护状态
作者: chchwy (mat)   2019-02-01 06:27:00
-O2之后vector跟原生array应该要几乎一样快才对
作者: LPH66 (-6.2598534e+18f)   2019-02-01 10:16:00
主要是复制成本, vector 被 PBV 的话会需要复制所以大家才会建议传参考 (PBR) 减少复制成本
作者: F04E (Fujitsu)   2019-02-05 19:37:00
降低效能应该是你的问题,source code放出来看看std::move和emplace_back是你的好朋友

Links booklink

Contact Us: admin [ a t ] ucptt.com