+ -
当前位置:首页 → 问答吧 → vector<int>与vector<int*>的区别

vector<int>与vector<int*>的区别

时间:2011-11-27

来源:互联网

请问一下各位vector<int>与vector<int*>有啥区别吗?当数据量超过100个,他们速度上有差异吗?求指点,谢谢!

作者: gisupc   发布时间: 2011-11-27

引用楼主 gisupc 的回复:
请问一下各位vector<int>与vector<int*>有啥区别吗?当数据量超过100个,他们速度上有差异吗?求指点,谢谢!

对于Vector来说,vector<int>和vector<int *>在内存的操作上都是一样,同样是4byte空间.但是再查找等操作过程中vector<int *>是要多几个Machine cycle,因为要对每个元素进行解引用,然后再去判断,还有对于使用者来说,vector<int>的效果也高于vector<int *>,其原因是,对于vector<int>来说,存取都是int,而对于vector<int *>来说,取就不太一样了,如果要用到真正的值的时候还要进行一次解引用(*var).
总之:
对于Build int类型,一般不是有特殊要求,没有人会这样用vector<int *>,直接vector<int>比较好点.

作者: yuucyf   发布时间: 2011-11-27

一般就用vector<int>。

为什么用vector<int*> ,速度是否有差异,要看具体的代码。

作者: hztj2005   发布时间: 2011-11-27