首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++ 11 std::chrono::chrono的例子

C++ 11 std::chrono::chrono的例子
EN

Stack Overflow用户
提问于 2012-08-26 10:15:11
回答 1查看 13.9K关注 0票数 3

我编写了一个示例函数来理解std::chrono::duration的行为,它是最近作为C++11标准的一部分引入的。

代码语言:javascript
复制
void exampleForDuration()
{
    seconds Sec(minutes(1));

    cout<<"1 second is "<<duration_cast<nanoseconds>(seconds(1)).count()<<" nanoseconds"<<endl;
    cout<<"1 minute is "<<Sec.count()<<" seconds"<<endl;
    cout<<"1 second is "<<duration_cast<duration<int,centi>>(seconds(1)).count()<<" centiseconds"<<endl;
    cout<<"100 second is "<<duration_cast<minutes>(seconds(100)).count()<<" minute."<<endl;
    cout<<"Waiting for 10 seconds...";
    auto start=system_clock::now();
    this_thread::sleep_for(seconds(10));
    cout<<"Done."<<endl;
    auto end=system_clock::now();
    auto waitedFor=end-start;
    cout<<"Waited for "<<duration_cast<seconds>(waitedFor).count()<<" seconds"<<endl;
    printCurrentDateTime();
}

输出:

1秒是1000000000纳秒,1分钟是60秒,1秒是100厘米秒,100秒是1分钟。

当我运行上面的函数时,程序在打印后等待了10秒,而不是在打印之后。我以为程序会在打印“等待10秒.”之后等待。然后等待,然后打印“完成”。但是上面写着"100秒是1分钟“然后等待10秒,然后剩下的输出。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-26 10:31:18

如果您更改,它是否正常工作?

代码语言:javascript
复制
cout<<"Waiting for 10 seconds...";

代码语言:javascript
复制
cout<<"Waiting for 10 seconds..." << endl;

这可能是因为它不冲,所以它还没有打印这条线。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12129296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档