zoukankan      html  css  js  c++  java
  • Effective C++条款20:宁以pass-by-reference-to-const替换pass-by-value。Test code

    看了第20条感觉以前没有注意那么多,尤其是在程序运行的效率方面没有很注意,所以就做了个测试:

    test.h文件

    #include <iostream>
    //using namespace std;
    class Person{
    public:    
        Person();
        virtual ~Person();
    private:
        std::string name;
        std::string address;
    };
    class Student:Person{
    public:
        Student();
        ~Student();
    private:
        std::string schoolName;
        std::string schoolAddress;
    };

    test.cpp文件

    #include "testH.h"
    Person::Person()
    {
    
    }
    Person::~Person()
    {
    
    }
    Student::Student()
    {
    
    }
    Student::~Student()
    {
    
    }

    main函数:

    #include <iostream>
    #include "time.h"
    #include "testH.h"
    using namespace std;
    bool viadStudent(Student& s);
    int main()
    {
        clock_t start=clock();
        int mid=2;
        for (int i=0;i<1000;)
        {
            i=i+1;
            Student s;
        bool Bool=viadStudent(s);
        }
        clock_t f=clock();
        std::cout<<"时间: "<<f-start<<endl;
        return 0;
    }
    bool viadStudent(Student &s)
    {
        return true;
    }

    当bool viadStudent(Student &s)有&的时候大概是14ms左右,没有&的时候一般要double的时间。

    以前就知道这么用但是现在知道为什么了,还有了实践的基础,理解会更深刻。

  • 相关阅读:
    工作流程在线编辑
    利用IIS导出,导入快速部署 web站点
    调用CRM自己的Dialogue
    简单粗爆的解决同时布CRM引起的死锁问题
    CRM 2013 自动发送报表
    CRM 2013 中业务流程的
    调试CRM JS开发
    CRM ribbon按钮上引用JS库
    CRM Look Up 解决方案
    Windows Azure 上传 VM
  • 原文地址:https://www.cnblogs.com/myxiaoxiaoyi/p/5350235.html
Copyright © 2011-2022 走看看