探讨++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-08-08
  • C++中引用传递与指针传递的区别(面试常见)

    C++中引用传递与指针传递的区别(面试常见)

    这篇文章主要介绍了C++中引用传递与指针传递的区别(面试常见),需要的朋友可以参考下
    2018-03-03
  • C语言中如何实现小写字母转大写字母

    C语言中如何实现小写字母转大写字母

    这篇文章主要介绍了C语言中如何实现小写字母转大写字母问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • c++线程池实现方法

    c++线程池实现方法

    这篇文章主要介绍了c++线程池实现方法,实例分析了C++线程池的原理与相关实现技巧,需要的朋友可以参考下
    2015-06-06
  • C语言俄罗斯方块游戏课程设计

    C语言俄罗斯方块游戏课程设计

    这篇文章主要为大家详细介绍了C语言俄罗斯方块游戏课程设计,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • C语言详解判断相同树案例分析

    C语言详解判断相同树案例分析

    这篇文章主要介绍了用C语言检查两棵树是否相同,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2022-04-04
  • 使用C++实现简单的文章生成器

    使用C++实现简单的文章生成器

    这篇文章主要为大家详细介绍了鹅湖使用C++实现简单的狗屁不通文章生成器,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以了解下
    2024-03-03
  • C语言基础 原码、反码、补码和移码详解

    C语言基础 原码、反码、补码和移码详解

    这篇文章主要介绍了C语言基础 原码、反码、补码和移码详解的相关资料,需要的朋友可以参考下
    2017-01-01
  • 浅谈C++左值引用和右值引用

    浅谈C++左值引用和右值引用

    下面小编就为大家带来一篇浅谈C++左值引用和右值引用。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • C++ odr用法案例详解

    C++ odr用法案例详解

    这篇文章主要介绍了C++ odr用法案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-09-09

最新评论