C++ 如何计算生产所需的总时间?

C++ 如何计算生产所需的总时间?,c++,algorithm,C++,Algorithm,我有一个line对象,每个line对象都有一个与其关联的任务数组。每个任务都有一个开始时间和结束时间。每个任务都有一个任务列表,这些任务是它的前辈 因此,如果所有任务都是独立的(没有前置任务),我只需计算每条生产线上最后一个任务的结束时间,即该生产线的结束时间。生产所花费的时间将是所有生产线结束时间的最大值。 问题是任务可能依赖于任务(可能在同一行或不同行上)。因此,如果任务的前置任务位于不同的行上,且其开始时间大于此任务的开始时间,则此任务的开始时间应相应更新 鉴于不同生产线上的这些前置任务,

我有一个line对象,每个line对象都有一个与其关联的任务数组。每个任务都有一个开始时间和结束时间。每个任务都有一个任务列表,这些任务是它的前辈

因此,如果所有任务都是独立的(没有前置任务),我只需计算每条生产线上最后一个任务的结束时间,即该生产线的结束时间。生产所花费的时间将是所有生产线结束时间的最大值。

问题是任务可能依赖于任务(可能在同一行或不同行上)。因此,如果任务的前置任务位于不同的行上,且其开始时间大于此任务的开始时间,则此任务的开始时间应相应更新

鉴于不同生产线上的这些前置任务,我如何计算正确的生产时间?

编辑: 这就是我到目前为止所想到的

Cluster {
    func* func[n]
};

func {
    int executiontime;
    int starttime;
    int endtime;
    func* pred[k]
};

int main {
    /Cluster objects were initialized up somewhere.

    Cluster cl[4];//An array of four clusters

    for(int i=0;i<4;i++) {

        cl[i].func[0].starttime = 0;
        cl[i].func[0].endtime = cl[i].func[0].starttime + cl[i].func[0].executiontime;

        for(int j=1;j<n;j++) {

            cl[i].func[j].starttime = cl[i].func[j-1].endtime;
            cl[i].func[j].endtime = cl[i].func[j].starttime + cl[i].func[j].executiontime;

        }

    }

    int productiontime=Max(cl[0].func[n].endtime,cl[1].func[n].endtime,cl[2].func[n].endtime,cl[3].func[n].endtime);

    return productiontime;
}
集群{
func*func[n]
};
func{
int执行时间;
int开始时间;
国际时间;
func*pred[k]
};
int main{
/集群对象在某个地方初始化。
Cluster cl[4];//由四个簇组成的数组

对于(int i=0;i您想要一个最优调度方案吗?或者任务调度已经给出,您只需要执行它吗?不,我不需要执行最优调度方案。当任务依赖于其他行上的任务时,我只需要测量此方案所用的时间。首先计算“独立”任务的开始/完成时间n根据这些时间戳,确定相关时间的时间。是否需要计算一次以找到瓶颈,还是每次计算一次?如果只计算一次,我建议进行分析。请参阅链接器手册,了解如何启用分析以及如何解释收集的数据。我不想进行分析。我编写了任务独立时的代码如果一个任务依赖于另一行上的另一个任务,我需要修改它以包含场景。