小编Mik*_*ike的帖子

几个比较如何比某些计算慢?

我们正在开发一段代码,可以检查用户是否应该被允许在一段时间内进入某个扇区,我的一位同事创建了一个函数,在下面的代码中是isAllowed并包含几个比较,我拿了一个不同的方法是功能isAllowed2,它使用时间段之间的秒数.

起初我们毫不怀疑他的功能会更快,但实际运行代码并比较速度时却不是这样,即使差异是我们可以完全忽略的,我们也想知道为什么它是一个这"应该"更快,其实是慢.

考虑以下代码:

#include <iostream>
#include <chrono>

using namespace std;
using namespace std::chrono;

struct timing {
    short hour;
    short minute;
};

bool isAllowed(timing &from, timing &to, timing &actual) {
    return !(((from.hour > to.hour && (actual.hour >= from.hour || actual.hour <= to.hour)) ||
        (actual.hour >= from.hour && actual.hour <= to.hour)) &&
        !(actual.minute > from.minute && actual.minute < to.minute));
}

long getSecs(short hour, short minutes) {

    return (hour * 3600) + (minutes * 60);

}

bool …
Run Code Online (Sandbox Code Playgroud)

c++ optimization performance c++11

13
推荐指数
1
解决办法
648
查看次数

标签 统计

c++ ×1

c++11 ×1

optimization ×1

performance ×1