我在教科书和论坛中看到了很多代码,人们在for循环初始化中使用赋值运算符来开始重复.例如,
for ( int i = 0; i < 5; ++i ) // common
for ( int i(0); i < 5; ++i ) // uncommon
Run Code Online (Sandbox Code Playgroud)
我知道初始化变量比分配变量更快.为什么人们更喜欢前者呢?
oua*_*uah 27
既int i = 0;和int i(0);声明,定义并初始化一个int与值对象0在C++中.它们是严格等价的,两个循环结构也是如此.请注意,在C中,int i(0);不是允许的构造.
您提到的两种初始化形式是: -
T t = u; _1
T t(u); _2
Run Code Online (Sandbox Code Playgroud)
_1
这可能涉及两个电话.一个是转换构造函数,另一个是复制构造函数.虽然大多数编译器都可以忽略复制构造.
_2
这只需要一次调用转换构造函数.
所以,_2优于_1.至于内置类型,它不会有太大的区别.
| 归档时间: |
|
| 查看次数: |
3735 次 |
| 最近记录: |