C++ Primer

诶呦 2012-02-16 09:57:44
在第四章数组与指针处讲到,现在的C++程序应尽量使用vector和迭代器类型,而避免使用数组与指针。
意思我也知道,就是使用vector与iterator更安全。
但是平时真的用的很少,学得时候也是学得数组与指针。所以想听听大家的看法,如果vector与iterator不错的话,打算以后可以多应用。
...全文
160 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
诶呦 2012-02-16
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 lirunfa 的回复:]
stl的容器是很好用,加速程序员的开发效率,但是具体要用哪个容器要根据需要判断。
例如程序需要随机访问元素,就用vector。如果需要大量的从中间位置插入或者删除元素,用list。
需要多次在首尾插入删除元素的话用deque。
建议楼主把Primer c++里面stl的章节认真看看,其实stl也就是对我们普通的链表和数组进行泛化和封装一下操作,机制等等而已,有机会可以看看侯捷的 《stl源码……
[/Quote]
谢谢,还没看到stl呢,呵呵
lirunfa 2012-02-16
  • 打赏
  • 举报
回复
stl的容器是很好用,加速程序员的开发效率,但是具体要用哪个容器要根据需要判断。
例如程序需要随机访问元素,就用vector。如果需要大量的从中间位置插入或者删除元素,用list。
需要多次在首尾插入删除元素的话用deque。
建议楼主把Primer c++里面stl的章节认真看看,其实stl也就是对我们普通的链表和数组进行泛化和封装一下操作,机制等等而已,有机会可以看看侯捷的 《stl源码剖析》。
诶呦 2012-02-16
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 jackzhhuang 的回复:]
一般情况下用vector是比较简单的。

但vector有一个缺点,不管是微软版本还是AIX版本下,vector申请内存一直都不释放,只增不减,只能手工使用swap与一个空vector交换才能释放内存。程序数据小的时候可以不理会,但是要是数据很大,运行时间很长,那么就有问题了。
[/Quote]
谢谢,学习了,多重要的提醒
jackzhhuang 2012-02-16
  • 打赏
  • 举报
回复
一般情况下用vector是比较简单的。

但vector有一个缺点,不管是微软版本还是AIX版本下,vector申请内存一直都不释放,只增不减,只能手工使用swap与一个空vector交换才能释放内存。程序数据小的时候可以不理会,但是要是数据很大,运行时间很长,那么就有问题了。
IVERS0N 2012-02-16
  • 打赏
  • 举报
回复
看具体需求 STL的容器挺好用的
wtbike 2012-02-16
  • 打赏
  • 举报
回复
现在也的代码里边,有指针和数组,也有vector,map之类的东西,看实际情况的.
诶呦 2012-02-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 czh3642210 的回复:]
这个不好说大部分怎么着怎么着,你首先要了解这两个的优缺点,然后,特定情况特定判断、、、
[/Quote]
是的,这个是前提,不能因为用而用。
诶呦 2012-02-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 luciferisnotsatan 的回复:]
用C写的库也是不支持vector的(好像有点废话)。
[/Quote]
因为是习惯C了,所以在看C++时,遇到这种情况有点茫然,就想知道书上说的C++一般都这么做么?
luciferisnotsatan 2012-02-16
  • 打赏
  • 举报
回复
用C写的库也是不支持vector的(好像有点废话)。
面包大师 2012-02-16
  • 打赏
  • 举报
回复
这个不好说大部分怎么着怎么着,你首先要了解这两个的优缺点,然后,特定情况特定判断、、、
诶呦 2012-02-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 cbzjzsb123 的回复:]
我看到的程序还是在用指针和数组
[/Quote]
一样啊
诶呦 2012-02-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 luciferisnotsatan 的回复:]
vector的开销比数组大。用的时候,看具体需求。
[/Quote]
谢谢提醒,用数组和指针是更加效率的。
我还是学生,所以我想知道,在工作中大部分人是用vector还是数组,提前做点准备。
cbzjzsb123 2012-02-16
  • 打赏
  • 举报
回复
我看到的程序还是在用指针和数组
luciferisnotsatan 2012-02-16
  • 打赏
  • 举报
回复
vector的开销比数组大。用的时候,看具体需求。
zhoupc1 2012-02-16
  • 打赏
  • 举报
回复
数组肯定是最省的
如果要求没那么高,或者自己水平不足的情况下就用vector吧,毕竟是高手写的,虽说不是按具体需要来的,单也比大多数码农写的好。
new的话容易出错
对新手来说动态内存《stl《语言自带数据
calven_2521 2012-02-16
  • 打赏
  • 举报
回复
看你写程序需要!大型程序我经常用到vector 和 map

64,679

社区成员

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

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