我有這樣的代碼:While循環不等於性病::隊列大小
std::queue<unsigned int> offsets;
// (fill offsets here)
DEBUG(std::to_string(offsets.size())) // print offsets.size() to console
int iterations = 0;
while (!offsets.empty())
{
iterations++;
unsigned int currOffset = offsets.front();
offsets.pop();
if (currOffset == 0)
{
DEBUG("breaking from while loop")
break;
}
// do something with currOffset
}
DEBUG(std::to_string(iterations))
出於某種原因,iterations
總是不等於offsets.size()
。我不確定這是爲什麼。在我的測試應用程序中,offsets.size() == 28
,但是iterations == 11
。我只在這個應用程序中從while循環中斷開。
任何想法爲什麼會發生這種情況?非常感謝幫助。
你能解釋爲什麼你會期待'迭代'等於'偏移量。 – juanchopanza 2015-02-23 19:45:02
因爲只要'offsetsets.empty()!= true',while循環應該繼續。因此'iterations'應該增加每個循環,因此等於'offsetset()'。至少這就是我期待它的工作原理...... – 2015-02-23 19:53:39
不,因爲你的循環中間有一個'break'。 – juanchopanza 2015-02-23 19:54:29