首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

指针与vector类怎么区别使用

2012-03-13 
指针与vector类如何区别使用在许多情况下,既可以用指针也可以用vector,这两者到底应该如何区别使用?在我的

指针与vector类如何区别使用
在许多情况下,既可以用指针也可以用vector,这两者到底应该如何区别使用?

在我的观念里,指针要想申请连续的空间必须提前知道要申请空间的维数,且不能往上添加额外的元素。
而对于vector容器类,不必要知道连续空间的维数,直接往里添加既可。并且能够添加额外的元素,但是定义时系统会给定一较大的连续空间。

那是否就是说若知道了要申请的连续空间的维数,用指针,若不知则用vector类?


[解决办法]
要申请的连续空间的维数,用指针
---
用数组吧,确定元素个数的

常规数组如果要扩展比较麻烦,自己的去做比较多的工作,还有越界等问题
vector简单的看就是动态数组,利用其接口完成访问,添加就行了,空间不够时,
会自己去申请新的空间,

定义时系统会给定一较大的连续空间
---
你往vector里存放很多数据时才会,其存储数据使用的也是堆上的空间
[解决办法]
在我的观念里,指针要想申请连续的空间必须提前知道要申请空间的维数,且不能往上添加额外的元素。
这个观念很有问题,要知道指针可是管理内存最强大也最灵活的工具,你说的这个只是一般数组的概念而已,而真正指针却是无所不能,而vector容器类的底层实现也是离不开指针的。。。
[解决办法]
楼主说的意思匪夷所思阿,你说的都对,但是指针分配内存和vector根本没有任何逻辑联系,有什么疑问的呢。vector的实现并不是单单为了不用自己分配连续内存上限而设置的。
[解决办法]
在许多情况下,既可以用指针也可以用vector,这两者到底应该如何区别使用? 
================================================================
VECTOR是容器,而且你完全可以用指针+模板 实现VECTOR。

在我的观念里,指针要想申请连续的空间必须提前知道要申请空间的维数,且不能往上添加额外的元素。 
而对于vector容器类,不必要知道连续空间的维数,直接往里添加既可。并且能够添加额外的元素,但是定义时系统会给定一较大的连续空间。 


那是否就是说若知道了要申请的连续空间的维数,用指针,若不知则用vector类? 
=================================
推荐看《STL源代码剖析》
VECTOR有个配置器。申请空间的时候会调用他的,对于VECTOR容器来说,VECTOR分配的空间是连续的。

[解决办法]
vectror不一定比指针优,只不过使用更加方便安全些罢了
就看你自己怎么用了。个人喜欢用stl的东东多些

[解决办法]
这两个没什么关系的吧。据我所知道的,vector是维护着一个内存块,一开始分配比较大的空间,如果到后来空间不够的时候,它会重新分配一个更大的空间,并把之前的数据重新拷贝到新的空间上,并删除之前的空间。

内存块呢,自己想怎么用就怎么划分吧。。

热点排行