函数计算用户按下按钮的频率



我有一个函数。下面是的原型

void onNewButtonPress(int64_t nanoseconds_timestamp, int32_t user_id);

一点归属感。每当具有user_id的用户按下按钮时,都会调用此函数。其中,纳秒时间戳参数是自epoch 以来的时间(以纳秒为单位(

该函数需要获得用户按下按钮的速率,基本上是用户每秒按下按钮的次数。

如何计算每个用户的费率,存储并定期更新?是否可以使用上面的函数来完成,或者我必须创建另一个函数,该函数将定期调用并计算速率。

我该如何处理在接近期末时开始按下按钮的用户。我需要平均一下吗?

根据你的经验,我很想听听你的意见。

类似的东西

有一个全局/成员变量,用于存储用户的时间戳

std::map<int32_t, int64_t> lastClick;

然后计算差值并将其反转以获得速率:

void onNewButtonPress(int64_t nanoseconds_timestamp, int32_t user_id) {
if (auto last = lastClick[user_id]) {
auto rate = 1000000000 / (nanoseconds_timestamp - last);
// Use the rate for something
lastClick[user_id] = nanoseconds_timestamp;
}
}

最新更新