C++ 检查整数是否增加了C++;

C++ 检查整数是否增加了C++;,c++,C++,因此,不太难,我只想了解以下是否是检查此问题的最有效/最快速的方法 if (misses++) run_code(); (基本上,如果未命中增加,运行一些代码,用于记录未命中角度等) 另外,每次未命中率增加时,该代码会运行吗?谢谢:) 编辑 这不会检查它是否增加,有人有什么想法吗?像这样尝试: int b=misses misses++; if(misses>b) { run_code(); b=misses; } 要确定某个值是否增加,必须记录原始值,以便比较:

因此,不太难,我只想了解以下是否是检查此问题的最有效/最快速的方法

if (misses++)
    run_code();
(基本上,如果未命中增加,运行一些代码,用于记录未命中角度等)

另外,每次未命中率增加时,该代码会运行吗?谢谢:)

编辑


这不会检查它是否增加,有人有什么想法吗?

像这样尝试:

int b=misses
misses++;
if(misses>b)
{
   run_code();
   b=misses;
}

要确定某个值是否增加,必须记录原始值,以便比较:

void f(int& arg); // might change arg

int main() {
    int misses = 0;
    int old_misses;
    for (int i = 0; i < 10; ++i) {
        old_misses = misses;
        f(misses);
        if (misses != old_misses)
            run_code();
    }
    return 0;
}
void f(int&arg);//可能会改变arg
int main(){
int未命中=0;
int old_misses;
对于(int i=0;i<10;++i){
旧的未命中=未命中;
f(未命中);
如果(未命中!=旧的未命中)
运行_代码();
}
返回0;
}

这并不意味着“如果
未命中
增加”。它的意思是“如果
未命中
不是
0
,然后递增
未命中
”。每次执行
未命中
时,在递增它之前,它将不等于零。它没有效率,因为它不符合您希望它做的事情。至于速度,如果它不起作用,那就无关紧要了。你需要跟踪它的最后一个值,然后检查该值从那时起是否增加了。或者,如果您想在值增加时调用它,而不是不断增加未命中数,只需调用
run\u code
,而
if(misses)
意味着
misses
没有增加?你正在编的有趣的语言;)。建议阅读:如果这不起任何作用,编译器只会删除它。