C++ 如何将时间(chrono)除以给定值

C++ 如何将时间(chrono)除以给定值,c++,time,chrono,C++,Time,Chrono,我正在努力熟悉chrono以评估性能。我有一个全局变量,它收集从文件插入单词到字符串向量的时间。如果插入了n个字符串,如何将该时间除以n得到平均时间并将其转换为秒、微秒、毫秒?我找到了如何用一个计时器的时间除以另一个计时器的时间,但找不到如何除以给定的数字n。以下是我的尝试: //global var auto InsertionTimerChainingHT = std::chrono::system_clock::now(); //... function declerations // i

我正在努力熟悉chrono以评估性能。我有一个全局变量,它收集从文件插入单词到字符串向量的时间。如果插入了n个字符串,如何将该时间除以n得到平均时间并将其转换为秒、微秒、毫秒?我找到了如何用一个计时器的时间除以另一个计时器的时间,但找不到如何除以给定的数字n。以下是我的尝试:

//global var
auto InsertionTimerChainingHT = std::chrono::system_clock::now();
//... function declerations
// inside function where I insert strings to vector
auto total = std::chrono::system_clock::now();
for (auto it = DataArray.begin(); it != DataArray.end(); it++)
{
    auto start = std::chrono::system_clock::now();
    ChainingHT.insert(it->data());
    auto stop = std::chrono::system_clock::now();

    total += (stop - start);


}
InsertionTimerChainingHT = total;
// I attempted to do the following
InsertionTimerChainingHT /= 1853;
InsertionTimerChainingHT = (InsertionTimerChainingHT / 1853).count();

将您的
总数
存储为
chrono::duration
,而不是
chrono::time\u点
系统时钟::now()
的返回是一个
时间点
(时间上的一个瞬间)。
停止
开始
之间的区别是持续时间(如3微秒)

例如:

auto total = std::chrono::system_clock::duration{0};  // zero system_clock ticks
持续时间
可以除以标量,得到
持续时间

total /= DataArray.size();

使用
std::chrono::duration diff=开始-停止
以秒为单位获取时间。你为什么要除以1853?@BarmakShemirani感谢你让我知道如何转换为秒数。1853是我在给定时间范围内插入的项目数量。我正在尝试获取插入字符串的平均时间。很高兴它成功了。如果您有一个小时的时间,下面是chrono的视频教程: