首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用ctime标记程序的起始点和结束点?

如何使用ctime标记程序的起始点和结束点?
EN

Stack Overflow用户
提问于 2016-08-07 11:58:56
回答 1查看 54关注 0票数 0
代码语言:javascript
复制
time_t start;
time_t no_infection;
bool time_already_set = 0;
bool infected_or_not = 0;
int not_infected_t = 0; 

我在struct中有这个变量,我想标记对象的起始点和结束点,然后计算差异。

代码语言:javascript
复制
void bacteria::set_no_infection() {
    if (infected_or_not == 0) 
        no_infection = clock();
}

首先,我有

代码语言:javascript
复制
void bacteria::set_time() {
    if (infected_or_not == 1 && time_already_set!=1) {
        start = clock();
        time_already_set = 1;
    }
}

在我使用get函数测试程序的过程中,时间变量似乎不会改变

代码语言:javascript
复制
double bacteria::get_time() {
    if (infected_or_not == 1)  
        return ((clock() - start) / CLOCKS_PER_SEC);
    else
        return -1;
}
int bacteria::get_no_infection() {
    if (infected_or_not = 0)   
        return ((clock() - no_infection) / CLOCKS_PER_SEC);
    else
        return -1;
}

在主程序中,我这样测试它:

代码语言:javascript
复制
while (1) {
    for (int i = 0; i < b.size() - 1; i++) {
        bactpop[i].set_no_infection();
        bactpop[i].inf(phagepop[i], bactpop[i], p);
        bactpop[i].kill_the_bacteria(b, i);
        cout << "        " << b[i].start << "    " << b[i].no_infection << endl;
    }
    cout << p.size() << " " << b.size() << endl;
}
EN

回答 1

Stack Overflow用户

发布于 2016-08-07 18:28:46

我不确定,但我猜您的函数每秒会被调用几次,由于clock() / CLOCKS_PER_SEC以秒为单位返回值,因此差异将为0,因为调用是在同一秒内执行的。

例如,使用gettimeofday (以微秒为单位)或std::chrono::high_resolution_clock::now() (如果使用C++11可以)。

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

https://stackoverflow.com/questions/38810745

复制
相关文章

相似问题

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