【发布时间】:2019-01-24 04:35:09
【问题描述】:
我有这个方法:
void Session::onNewImage(cv::Mat& img, double elapsedTime){
static int count = 0;
add(img, dnnOutput[count++], curLati, curLongi, curAlti, curHeading, curRoll);
}
它被调用了 1400 次。每次“count”的值递增。但是当它在 1401 时间出现时,我希望“计数”变为 0 ,然后再次增加形式。我不希望“计数”成为全局变量。我怎样才能做到这一点?
附:我无法将其硬编码为 1400。每次都可能不同。还有另一种方法决定调用该方法的次数,具体取决于作为该方法输入的图像数量。
【问题讨论】:
-
if ( count > 1400 ) count = 0;? -
使用 %(模数)运算符。
-
那个值,1400,是dnnOutput的大小吗?那是数组还是向量?
-
很抱歉给出“其中一个”cmets,但也许您最好解释一下您想要实现的目标。您寻求的实际解决方案可能不在此特定功能的细节中,而是在您的实现的整体设计中。显然,您在此方法中访问的类中有一些状态,并且您对该状态进行了假设;该状态与您的
count变量有何不同? -
赶上@odyss-jii 和以前的cmets:假设最大计数是sizeof dnnOutput,可能是
std::vector<...>,那么你可以做e。 G。count = (count + 1) % dnnOutput.size();。到目前为止还好。但是,如果您从 0 重新开始,您是否确保在重新使用之前对图像进行的任何处理都完成?或者至少,如果newImage(0)和newImage(1400)重复使用相同的数据,就不会发生冲突?
标签: c++ loops variables increment