例如,以下两个程序是否具有保存执行时间?
#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;
}
如果是这样,总是包含一堆头文件是一个好习惯吗?如何测试执行程序需要多长时间?使用预定义的输入。
答案 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(集成开发环境)应该省略包含系统的头文件
希望有意义