时间:2021-05-19
答案:
在内建数据类型的情况下,效率没有区别;
在自定义数据类型的情况下,++i效率更高!
分析:
(自定义数据类型的情况下)
++i返回对象的引用;
i++总是要创建一个临时对象,在退出函数时还要销毁它,而且返回临时对象的值时还会调用其拷贝构造函数。
(重载这两个运算符如下)
复制代码 代码如下:
#include <iostream>
using namespace std;
class MyInterger{
public:
long m_data;
public:
MyInterger(long data):m_data(data){}
MyInterger & operator++(){
cout<<"Integer::operator++() called!"<<endl;
m_data++;
return *this;
}
MyInterger operator++(int){
cout<<"Integer::operator++(int) called!"<<endl;
MyInterger tmp = *this;
m_data++;
return tmp;
}
};
int main()
{
MyInterger a = 1;
a++;
++a;
return 0;
}
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
i=i++;j=i++的区别i=i++-----------在java中这个语句的前后顺序应该是这样的(tmp=i;i++;tmp==i)java的编译器在遇到
i++和++i的区别: 1、i++返回原来的值,++i返回加1后的值。 2、i++不能作为左值,而++i可以。 3、i++前者是先赋值,然后再自增;++i
breakfunctionmyBreak(){for(vari=0;i<5;i++){if(i==3){break;}console.log(i);}}myBr
复制代码代码如下:functionutf8_substr($str,$len){ for($i=0;$i127){ $i++; if($i
复制代码代码如下:for($i=1;$i<100;$i++){$str=str_repeat('01234567',$i);$a=memory_get_usag