vector 和数组的问题

fineday2011 2012-01-03 10:19:45
1, c++标准库里vector 用迭代器 比用数组和指针实现的简单,是不是数组,指针在实际应用上已经不那么重视了?
2, 到底什么地方用数组而不用vector呢?
3, 如果考研的话,用数组实现的我用vector实现,可以么?
...全文
188 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
herman~~ 2012-01-06
  • 打赏
  • 举报
回复
建议如果是初学者,两种都用用,毕竟不只是自己写代码,还需要读懂别人的代码
用数组和vector跟考研木有半点关系吧 ~~
lee_鹿游原 2012-01-04
  • 打赏
  • 举报
回复
C++ , 就尽量用vector。
riyueming184 2012-01-04
  • 打赏
  • 举报
回复
C++如果不重视指针,那就不是C++了
mm11214014 2012-01-04
  • 打赏
  • 举报
回复
好巧,这两天刚好看了vector的实现源码,有点儿小心得。
vector的迭代器就是指针,所以才可以像普通指针那么灵活,支持随机存取。vector的实现其实就是一个数组,也是用一段连续的内存,不过vector的内存分配以及各种操作的效率,要比数组强大很多。能用vector还是用vector吧。
天上无我 2012-01-04
  • 打赏
  • 举报
回复
了解数组、指针、vector容器这三者的优缺点,比较一下
平时我建议使用vector 考研的话建议使用数组或指针
大致是这样的!
对象 2012-01-04
  • 打赏
  • 举报
回复
1. 不是不受重视了,而是vector更易用,更安全,但是C++之父BS确实明确推荐使用vector,他认为数组是C遗留下来的东西。

2. 一般需要动态增长的数据集需要用vector保存。

3. 考研题目一般是靠基本数据结构,如果要是手动实现vector的话,在考试里应该不会出现,因为要考虑的东西太多,特别是一个好的内存池管理类,不是那么简单就能实现的。
子谋 2012-01-04
  • 打赏
  • 举报
回复
1、vector不是实现简单,而是简化了编程,用起来简单了。至于数组和指针重要不重要,是根据需求决定的,如果我跟你说,有一个字符串,不会超过100个字母,你会选择vector嘛?反正我不会,我肯定选数组,vector的优势是动态增删,如果对动态增删没有需求,何必用vector?
2、vector更安全,更易用,但是相对的也更慢,内存开销也更大,不信你自己去试试。有人做过实验,对于100W的数据量,静态数组的遍历效率是vector的10倍,而赋值效率是vector的100倍,当然这是没有优化过的,就算优化过,vector还是不可能比数组快,因为vector存在管理开销,而数组不存在这个开销,所以对于嵌入式开发,几乎没人用vector,因为对于嵌入式设备,每1毫秒,每1比特都是珍贵的……
3、考研的数据结构问题最好用数组,不过似乎没有强制规定,但是用数组比用vector更直观,也更能体现一个人的水平,因为什么事情都得自己想到,没人帮你去维护这些内存。而且,如果考察内容就是动态增删的话,你用vector肯定1分都拿不到。对于考研,都是使用最最基本的数据类型,如果你把java里面各种智能的数据类型都用上,那还用你写嘛,人家都实现好了……
  • 打赏
  • 举报
回复
你先了解下STL就明白了
nice_cxf 2012-01-04
  • 打赏
  • 举报
回复
如果你的数据长度不会改变,也就是说除了初始化和释放,其他时候不会对数据进行增加或删除操作,这个时候用数组就可以了,当然你用vector也不会有错误,只是这样效率会低一些
lxg675797265 2012-01-04
  • 打赏
  • 举报
回复
了解数组、指针、vector容器这三者的优缺点,比较一下
平时我建议使用vector 考研的话建议使用数组或指针
yujie_v 2012-01-04
  • 打赏
  • 举报
回复
都可以的,能够替换
caigenphoenix 2012-01-04
  • 打赏
  • 举报
回复
一般C++中不鼓励用数组,而是用vector代替
SURE_bd 2012-01-04
  • 打赏
  • 举报
回复
考研自然要用数组了,这个毫无疑问的。。。而且面试啥的写程序很多都会明确说明不准使用库函数!
iamnobody 2012-01-04
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 mm11214014 的回复:]
好巧,这两天刚好看了vector的实现源码,有点儿小心得。
vector的迭代器就是指针,所以才可以像普通指针那么灵活,支持随机存取。vector的实现其实就是一个数组,也是用一段连续的内存,不过vector的内存分配以及各种操作的效率,要比数组强大很多。能用vector还是用vector吧。
[/Quote]

你只是看了简化版的stl源码吧.vector的迭代器就是一个类型,至于它是不是指针那是依赖于具体实现的.
小西飞 2012-01-04
  • 打赏
  • 举报
回复
只要不出错,想用什么用什么?
yafeng_jiang 2012-01-03
  • 打赏
  • 举报
回复
分情况吧,零件有很多可供我们挑选
hj393802798 2012-01-03
  • 打赏
  • 举报
回复
很简单,了解他们的优缺点,自然知道什么时候用数组好 ,什么时候用vector。
晨星 2012-01-03
  • 打赏
  • 举报
回复
1. 不是它实现地简单,只是它都实现好了,你用起来简单。数组,指针不是不重视,只是多数情况下,在实际项目中建议用库里现成的设施。
2. 固定长度的,不需要经常做内存分配或释放的。另外,也有某些编程环境中不允许使用STL。
3. 这个看题目要求了。一般数据结构或算法的题目还是用C语言写更清晰一些。一般考查数据结构或算法的题目不太会在内存的动态分配方面大做文章,所以即使用vector也不一定有优势。


hlyces 2012-01-03
  • 打赏
  • 举报
回复
先懂原理 用数组,然后用库
stl

64,652

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧