【发布时间】:2025-11-21 10:20:02
【问题描述】:
我需要做以下事情:
- 用 C++ 编写三个函数
- 一个函数静态声明一个大数组
- 一个函数在堆栈上声明相同的数组
- 最后一个函数从 HEAP 创建相同的数组
- 必须多次调用每个子程序(100,000 次)
- 输出每个所需的时间
这是我的代码:
用户环境
#include <time.h>
#include <iostream>
using namespace std;
void func1();
void func2();
void func3();
int main()
{
for (i = 0; i < 100000; i++)
{
func1();
func2();
func3();
}
}
实施
void func1()
{
int static my_array[1000];
}
void func2()
{
int my_array[1000];
}
void func3()
{
new int my_array[1000];
}
问题:
- 我是在 Main 中还是在每个 Function 中创建数组(就像我所做的那样)?
- 我是在主函数还是在每个函数中找到时间?
- 是 Time() 还是 Clock()?
- 是否必须将 Time() 保存到变量中?
- 我做错了什么以及如何解决?
【问题讨论】:
-
应该是clock()。我知道。而且您需要将调用的开始保存到一个变量。
float start_time = clock()/CLOCKS_PER_SEC;,就在 for 循环之前。float end time = clock()/CLOCKS_PER_SEC;就在 for 循环之后。和cout << start_time - end_time << endl;或printf("Time taken: %f s.", start_time - end_time);打印输出。 -
您提出的问题最好由您的老师或助教回答。这给你分配了这个问题。
标签: c++ arrays function static heap-memory