C++ 尝试使用chrono将时间存储到数组中

C++ 尝试使用chrono将时间存储到数组中,c++,arrays,time,chrono,C++,Arrays,Time,Chrono,我正在测量我编写的一个算法的时间,并使用std::chrono以微秒为单位测量它。但是,我也尝试将这些经过的值存储到数组中,我不确定如何存储。我尝试了这个(我的数组是int类型) std::chrono::duration\u cast(结束-开始); 插入排序时间[i][j]=经过的时间; 我得到以下错误: error: cannot convert 'std::chrono::duration<long int, std::ratio<1l, 1000000l&g

我正在测量我编写的一个算法的时间,并使用std::chrono以微秒为单位测量它。但是,我也尝试将这些经过的值存储到数组中,我不确定如何存储。我尝试了这个(我的数组是int类型)

std::chrono::duration\u cast(结束-开始);
插入排序时间[i][j]=经过的时间;
我得到以下错误:

error: cannot convert 'std::chrono::duration<long int, std::ratio<1l,
       1000000l> >' to 'int' in assignment

time_insertion_sort[i][j] = elapsed; 
错误:无法将赋值中的'std::chrono::duration'转换为'int'
插入排序时间[i][j]=经过的时间;

我想如果我将数组声明为long类型,它可能会起作用,但它仍然不起作用。有人能帮我吗

如您所述,您的数组类型为
int
,错误是无法将
std::duration
类型转换为
int
。因此,您需要获取原始值并将其存储,或者将
std::duration
类型存储在数组中

auto elapsed = std::chrono::duration_cast<std::chrono::microseconds>(end - start);

// You should be able to store this raw value.
auto rawValue = elapsed.count();
auto-appeased=std::chrono::duration\u cast(结束-开始);
//您应该能够存储此原始值。
auto rawValue=appead.count();

注意
count
函数返回的类型是
std::duration
的表示类型。您的错误消息表明表示类型为
long int
,因此,如果
sizeof(int)
sizeof(long)
不同,您可能会溢出

您可能只想将
.count()
添加到持续时间强制转换的末尾。你可以试着让你的问题更完整,这样我们可以看到上下文。如果你想知道执行一个函数或特定代码需要多少时间,请使用配置文件。使用
std::chrono
不考虑任务切换和其他可能影响结果的因素。感谢大家在没有说明原因的情况下投票,这里通常是这样
auto elapsed = std::chrono::duration_cast<std::chrono::microseconds>(end - start);

// You should be able to store this raw value.
auto rawValue = elapsed.count();