随笔 - 62  文章 - 96  trackbacks - 0
<2025年4月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

常用链接

留言簿(7)

随笔分类(66)

随笔档案(62)

文章分类(31)

文章档案(32)

友情链接

最新随笔

积分与排名

  • 积分 - 234754
  • 排名 - 108

最新评论

阅读排行榜

评论排行榜

顺序容器的比较

插入|删除位置
/效率
头部
中间
尾部
随机访问
vector
Yes
list
No
deque
Yes
posted @ 2006-08-03 21:18 beyonlin 阅读(333) | 评论 (1)编辑 收藏

创建对象的几种方式的效率比较

这里以string类为例:

1、string str1 = "";
2、string str2 = string();
3、string str3;

第一种方式:调用string类接受字符串形参的构造函数,创建一个临时对象。
然后调用复制构造函数用该对象初始化str1。

第二种方式:调用string类的默认构造函数,创建一个临时对象。
然后调用复制构造函数用该对象初始化str2。

第三种方式:直接调用string类的默认构造函数初始化str3。

创建临时对象的代价是高的。

因此创建对象应尽量不要使用会创建临时对象的初始化方式。

在使用类时也尽量不要创建临时对象。

posted @ 2006-06-28 00:10 beyonlin 阅读(481) | 评论 (1)编辑 收藏
包含以下成员的类的构造函数必须使用初始化

1、 没有默认构造函数的类类型的成员。
2、 const成员。
3、
引用类型的成员。
posted @ 2006-06-27 00:11 beyonlin 阅读(411) | 评论 (0)编辑 收藏

推荐一款快速编辑C++代码的插件Visual Assist。

它能自动识别各种关键字,系统函数,成员变量,

自动给出输入提示,自动更正大小写错误,

自动标示错误,等等等等。

用了它,你写代码的速度一定大大提高。

posted @ 2006-06-18 17:39 beyonlin 阅读(657) | 评论 (2)编辑 收藏

Once in a time...

看到一段代码:

char *p1,*p2;
//something
if(p1!=0)strcpy(p2,p1);

奇怪,指针怎么能够和0相比呢?


N days later...

一个有效的指针有三种状态:

一、保存一个特定对象的地址。

二、指向某个对象后面的另一对象。

三、值为0,表明它不指向任何对象。

if(p1!=0)strcpy(p2,p1);
<=>
if(p1!=NULL)strcpy(p2,p1);// 这种形式更易理解。

NULL 是在 cstdlib 头文件中定义的变量,值为0.

posted @ 2006-06-10 13:01 beyonlin 阅读(344) | 评论 (0)编辑 收藏
仅列出标题
共12页: First 3 4 5 6 7 8 9 10 11 Last