gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 02:04:25 25 4
gpt4 key购买 nike

我正在努力熟悉 chrono 以评估性能。我有一个全局变量,它收集从文件中插入单词到字符串 vector 的时间。如果我插入了 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_pointsystem_clock::now() 的返回是一个time_point(一个瞬间)。 stopstart 之间的区别是 duration(例如 3 微秒)。

例如:

auto total = std::chrono::system_clock::duration{0};  // zero system_clock ticks

duration 可以除以标量,得到 duration:

total /= DataArray.size();

关于c++ - 如何将时间 (chrono) 除以给定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53550347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com