标题:[转] Bjarne Stroustrup 在自己主页上发表的FAQ
只看楼主
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
预留空间是根据你增加的次数和频率指数增长的,通过不同的途径到达100,最终的状态不一样,换句话说,不用多少次就已经有128了。

授人以渔,不授人以鱼。
2013-08-28 10:48
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
得分:0 
回复 21楼 TonyDeng
但是我还是没明白9楼你说的...
定义的时候分配空间比运行时push要慢
因为,在我看来,就像我举的例子,同样是到100
运行时push有可能会导致重新分配...
如果不重新分配的话,效率应该差不错...
重新分配的话,怎么可能比我一次性分配好空间要快?

PS:刚草草翻了一下primer第四版的电子版,没看到9楼提到的相关描述呀...

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-08-28 11:11
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
比如,push第1次预留4,第2次在前面的基础上再加到8,前后总共有12,加了2次得到12,第3次会暴涨到追加16。在前面数次是会重新调整内存的,但在过后这种机会会极少了,前面重新调整,复制和拷贝数据的量也少,到后面,基本上不需要再做这种拷贝动作了。

见C++ Primer第9章,该书附带的《C++编程规范》第76条、80条。

授人以渔,不授人以鱼。
2013-08-28 11:19
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
得分:0 
我明白你的意思了...
可能是我看书没仔细琢磨吧...

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-08-28 11:32
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
熟悉C的人,就是太熟悉那些细节手段,未必知道新的东西有新的手段,这才是人家反复说不需要暸解太多不需要暸解的细节的原因(不是说不需要暸解细节,是说一些不需要暸解的细节是不需要知道的,知道了反而有害),按照劝告用就是了。面向对象隐蔽了很多细节,而C是公开细节的,两者在意识形态上本就不同,所以C程序员与C++程序员往往争执不下,就是这个原因,像林纳斯那样咒骂C++,也是因此。

[ 本帖最后由 TonyDeng 于 2013-8-28 11:51 编辑 ]

授人以渔,不授人以鱼。
2013-08-28 11:46
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
得分:0 
额...
怎么说呢...我觉得C写多了的人会有一种强迫症...
就是某一段代码不是自己写出来的,或者没见过源码的程序...极度不信任...

就好像C里面要用一个链表,二叉树什么的...
如果这些代码不是自己写的,用起来总感觉特别别扭,然后就总想挑点刺,找个由头自己重写一个...
要是你告诉他某个接口什么的不用知道原理,你只需要调用就得了...
这简直跟要他命一样...

这是我接触的一些写C人的通病...

而面向对象的一大特性就是封装...也就是通俗一点来说的黑匣子...
所以...你懂的...

[ 本帖最后由 peach5460 于 2013-8-28 12:30 编辑 ]

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-08-28 11:50
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 

授人以渔,不授人以鱼。
2013-08-28 11:52
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
得分:0 
回复 27楼 TonyDeng

嗯,你之前说分配的时候我就领悟了...
还特地照了一张给我看啊...

T版你真好

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-08-28 12:31
小武哥253
Rank: 2
等 级:论坛游民
帖 子:14
专家分:10
注 册:2013-7-27
得分:0 
受教了,嘻嘻
2013-09-14 10:17



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-351085-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.771263 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved