探讨++i与i++哪个效率更高

 更新时间:2013年10月03日 09:17:03   作者:  
i++总是要创建一个临时对象,在退出函数时还要销毁它,而且返回临时对象的值时还会调用其拷贝构造函数

答案:

在内建数据类型的情况下,效率没有区别;

在自定义数据类型的情况下,++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;
}

相关文章

  • 解析C++无锁队列的实现代码

    解析C++无锁队列的实现代码

    本篇文章是对C++无锁队列的实现进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • 详解设计模式中的中介者模式在C++编程中的运用

    详解设计模式中的中介者模式在C++编程中的运用

    这篇文章主要介绍了设计模式中的中介者模式在C++编程中的运用,中介者模式将对象间的通信封装到一个类中,将多对多的通信转化为一对多的通信,降低了系统的复杂性,需要的朋友可以参考下
    2016-03-03
  • C语言中char*和char[]用法区别分析

    C语言中char*和char[]用法区别分析

    这篇文章主要介绍了C语言中char*和char[]用法区别,包括使用过程中的误区及注意点分析,需要的朋友可以参考下
    2014-09-09
  • C语言实现纸牌计算24点小游戏

    C语言实现纸牌计算24点小游戏

    这篇文章主要为大家详细介绍了C语言实现纸牌计算24点小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • Matlab制作视频并转换成gif动态图的两种方法

    Matlab制作视频并转换成gif动态图的两种方法

    这篇文章主要介绍了Matlab制作视频并转换成gif动态图的两种方法,第一种方法使用movie(f)直接取生成AVI视频文件,相对来说比较简单,需要的朋友可以参考下
    2018-08-08
  • OpenGL扫描线填充算法详解

    OpenGL扫描线填充算法详解

    这篇文章主要为大家详细介绍了OpenGL实现扫描线填充算法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • C++实现蓝桥杯竞赛题目---搭积木

    C++实现蓝桥杯竞赛题目---搭积木

    这篇文章主要介绍了C++实现蓝桥杯竞赛题目---搭积木,本篇文章通过题目分析列举公式进行分析算法,包含详细的图文,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • C++数据结构之AVL树的实现

    C++数据结构之AVL树的实现

    AVL树是高度平衡的而二叉树,它的特点是AVL树中任何节点的两个子树的高度最大差别为1,本文主要给大家介绍了C++如何实现AVL树,需要的朋友可以参考下
    2022-06-06
  • C语言回溯法解八皇后问题(八皇后算法)

    C语言回溯法解八皇后问题(八皇后算法)

    这篇文章介绍了C语言回溯法解八皇后问题,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • Qt QString的使用实现

    Qt QString的使用实现

    本文主要介绍了Qt QString的使用实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05

最新评论