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

日哈尔

告诉我,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开始,您可以使用此处描述的用户定义的文字来创建持续时间:

    #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的CppCon演讲他的其他演讲涉及计划的C ++ 20新增功能。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章