添加其他标题会使程序变慢吗?

时间:2017-10-21 11:31:55

标签: c++ time

例如,以下两个程序是否具有保存执行时间?

#include <iostream>
int main()
{
int a,b;
std::cin >> a >> b;
std::cout << a+b;
return 0;
}

and

#include <ctime>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cassert>
#include <time.h>
#include <algorithm>
#include <iostream>
#include <vector>
int main()
{
int a,b;
std::cin >> a >> b;
std::cout << a+b;
return 0;
}

如果是这样,总是包含一堆头文件是一个好习惯吗?如何测试执行程序需要多长时间?使用预定义的输入。

4 个答案:

答案 0 :(得分:4)

  

添加额外的标题会使程序变慢吗?

没有。当然,有人会出现一些角落案件来反驳这一点。但不,额外的标题通常不会使C或C ++程序变慢。

  

如果是这样,总是包含一堆头文件是一个好习惯吗?

不要包括&#34;一堆。&#34;包括你使用的那些。要包含额外的标题会增加编译时间,如果标题来自您自己的项目,则只要触摸任何标题,就会导致重新编译项目中的许多对象。

  

如何测试执行程序需要多长时间?

用秒表。或time()。或rdtsc。或QueryPerformanceCounter()。很多方法。

答案 1 :(得分:2)

  

例如,以下两个程序的执行时间是否相同?

是。包含其他头文件不会影响程序的执行时间。

头文件在编译时处理。因此他们(通常)不会减慢您的代码速度。

可能存在极端情况,包含特定标题可能会拾取某些算法的不同实现,这本身就比没有该标题时拾取的另一个更慢。

  

如果是这样,总是包含一堆头文件是一个好习惯吗?

没有。您应该为您正在使用的每种类型包含头文件,不能少说。

  

如何测试执行程序需要多长时间?使用预定义的输入。

有几种可能性。您可以在分析工具中运行程序,或者只是自己测量时间(在脚本等中)。

答案 2 :(得分:1)

  

添加额外的标题会使程序变慢吗?   例如,以下两个程序是否具有相同的执行时间?

添加其他标头不会影响程序的运行时。但是它会影响编译时间,因为编译器现在必须在程序中包含这些额外的头文件。

  

如果是这样,总是包含一堆头文件是一个好习惯吗?

最佳做法是仅包含您将在项目中使用的头文件。另外,注意不要包含C版本的标题和标题的C ++版本,否则可能会遇到问题。

  

如何测试执行程序需要多长时间?使用预定义的输入。

我建议您查看ctime库:http://www.cplusplus.com/reference/ctime/

请记住,执行时间特定于您的计算机。

答案 3 :(得分:-4)

我认为它会使程序变慢,因为当你调用像 cout cin 这样的函数时,编译器会在程序员声明的头文件中找到它

更多的头文件需要更多时间来查找函数定义

此外,如果包含额外的头文件不会增加编译时间,那么ide(集成开发环境)应该省略包含系统的头文件

希望有意义