C++ 检查conhost打印所需的时间

C++ 检查conhost打印所需的时间,c++,cout,large-data,C++,Cout,Large Data,我有一个布尔数组,每个代表一个数字。我正在使用for循环打印每个true:for(unsigned long l=0;l试试这个: #include <windows.h> ... int main() { //init code double startTime = GetTickCount(); //your loop double timeNeededinSec = (GetTickCount() - startTime) / 1000.

我有一个布尔数组,每个代表一个数字。我正在使用for循环打印每个
true
:for(unsigned long l=0;l试试这个:

#include <windows.h>
...

int main() {
    //init code

    double startTime = GetTickCount();

    //your loop

    double timeNeededinSec = (GetTickCount() - startTime) / 1000.0; 
}
#包括
...
int main(){
//初始化代码
double startTime=GetTickCount();
//你的循环
double timeneedInSec=(GetTickCount()-startTime)/1000.0;
}

只是为了防御ctime,因为它给出了与GetTickCount相同的结果:

#include <ctime>    

int main()
{
   ...
   clock_t start = clock();
   ...
   clock_t end = clock();

   double timeNeededinSec = static_cast<double>(end - start) / CLOCKS_PER_SEC;
   ...
}
#包括
int main()
{
...
时钟启动=时钟();
...
clock_t end=clock();
double TimeneedInSec=静态(结束-开始)/时钟每秒;
...
}
更新:

和带有time()的一个(),但在这种情况下,我们可能会损失一些精度(~1秒),因为结果是秒

#include <ctime>    

int main()
{
   time_t start;
   time_t end;
   ...

   time(&start);
   ...
   time(&end);

   int timeNeededinSec = static_cast<int>(end-start);
}
#包括
int main()
{
时间没有开始;
时间不会结束;
...
时间(&开始);
...
时间(&结束);
int timeNeededinSec=静态_转换(结束-开始);
}

在一个简单的例子中结合这两种方法将向您展示结果的差异。在我的测试中,我只看到了一个点一个点的差异。

我实际上还没有尝试一种解决方案@HansPassant。我在问如何等待conhost完成其所有值的打印。