如果将一个值复制到另一部分

Copy one value in if to other part

本文关键字:复制 另一部 一部分 一个 如果      更新时间:2023-10-16

您好,我想复制一个我获得的值,这样我可以在代码的下一部分上使用它?我无法使用elapsed_secs的开始的价值谢谢

int temp = temp + 1;
if (temp == 1)
    clock_t begin = clock();
clock_t end = clock();
double elapsed_secs = double(end - begin) / CLOCKS_PER_SEC;
gotoxy(50, 1); printf("Tiempo: %d", elapsed_secs);

这样:

int temp = <insert-initial-value>; // in your code it's used uninitialized!!!
clock_t begin = <insert-initial-value>;
if (temp == 1)
    begin = clock();
clock_t end = clock();
double elapsed_secs = double(end - begin) / CLOCKS_PER_SEC;

由于您希望begin的范围在if-Statement的身体外部。

此外,您需要为begin提供一个初始值,以便在计算elapse_secs时不会使用它来使用它(将调用不确定的行为)。


编辑:

从您的评论中,我相信这是您想做的(基于我的时间测量):

#include <iostream>
#include <ctime>
#include <ratio>
#include <chrono>
void functionToBeTimed(void) {/*do something here*/}
int main ()
{
  using namespace std::chrono;
  high_resolution_clock::time_point t1 = high_resolution_clock::now();
  std::cout << "Executing the function twice...n";
  for (int i = 0; i < 2; ++i)
    functionToBeTimed();
  high_resolution_clock::time_point t2 = high_resolution_clock::now();
  duration<double> time_span = duration_cast<duration<double>>(t2 - t1);
  std::cout << "It took me " << time_span.count() << " seconds." << std::endl;
  return 0;
}