c++ - 如何转换为真与假?

标签 c++

我想学习如何制作紧凑型开关,告诉我是否操作正确或可以简化它?

    auto _time = 5s;
    bool save_time;
    auto fs_time = steady_clock::now();

    for(;;) {
    auto now_time = steady_clock::now();

    if (duration_cast<seconds>(now_time - fs_time) >= _time) {
       save_time = true;
    }
    else {
       save_time = false;
    }

    // CODE ....

     if(save_time) {
     // CODE ....

     }
     if(save_time) {
     // CODE 2 ....

     }
    }

我这样做是为了避免重复写同一件事。

    if (duration_cast<seconds>(now_time - fs_time) >= _time) {}

当它不断检查代码时,这可能会使代码变慢。

最佳答案

紧凑的意思是一行?

save_time = (duration_cast<std::chrono::seconds>(now_time - fs_time) >= _time) ? true  : false;

或更紧凑,如Default所建议:
save_time = (duration_cast<std::chrono::seconds>(now_time - fs_time) >= _time);

关于使用的使用,请看以下问题:Why is "using namespace std;" considered bad practice?

关于c++ - 如何转换为真与假?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60785882/

相关文章:

c++ - 无法完全专门化字符串文字的模板

c++ - 按值传递 va_list 时发生访问冲突

c++ - 在这种情况下如何解决?语法错误 : missing ';' before '* "node"?

c++ - 多源BFS多线程

c++ - Qt 需要将 Qt 应用程序带到前台,从 win32 应用程序调用

c++ - 单个进程出错后如何正确退出 MPI 应用程序

c++ - 将 Xcode 项目与 MathGL 链接时的语义问题

c++ - 关于 ADC,-1 (0xFFFFFFFF) 有什么特别之处吗?

c++ - 使用指针遍历多维数组

C++ 类继承段错误