gpt4 book ai didi

C++:使用后缀设置时间

转载 作者:行者123 更新时间:2023-11-30 02:15:24 26 4
gpt4 key购买 nike

告诉我,C++ 11/14/17 中是否存在以下内容:

1) 使用时间后缀设置时间

double time1 = 1s; // time1 = 1.0
double time2 = 2m; // time2 = 120.0
double time3 = 7ms; // time3 = 0.007

2) 获取设置后缀为时间的字符串值

std::cout << getTime(time1); // cout 1s
std::cout << getTime(time2); // cout 2s
std::cout << getTime(time3); // cout 7ms

最佳答案

  1. 是的,从 C++14 开始,您可以使用用户定义的文字 described here创建持续时间:

    #include <chrono>
    using namespace std::literals;
    auto time1 = 1s; // std::chrono::seconds{1}
    auto time2 = 2min; // std::chrono::minutes{2}
    auto time3 = 7ms; // std::chrono::milliseconds{7}

    这些创建存储整数值的类型安全对象。您可以在内部相当轻松地使用 double,但是这些特化并没有开箱即用的漂亮类型别名:

    namespace chr = std::chrono;
    using dbl_seconds = chr::duration<double, chr::seconds::period>;
    // Likewise for other units
    dbl_seconds time1 = 1s;

    如果您绝对需要内部值(通常是个坏主意),您可以使用 .count() 访问它。

  2. 这计划在 C++20 中出现:

    std::cout << time1; // 1s, or 1.000000s if using double

    在那之前,您可以使用标准 C++ 做的最好的事情就是吸收它并使用 count():

    std::cout << time1.count() << 's'; // 1s

要深入了解图书馆,请观看 Howard's CppCon talk .他的其他演讲涵盖计划中的 C++20 添加内容。

关于C++:使用后缀设置时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56211766/

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