顺序容器的比较
插入|删除位置
/效率
|
头部
|
中间
|
尾部
|
随机访问
|
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) |
编辑 收藏