いろきゅうの(元)はてなダイアリー

はてなダイアリーから移行中…

バグを探して4時間

どーも、バグが取れない!
Dump() で正常な値が表示できない!
ナゼ「ぬるぽ」が発生するんだぁぁぁ!!!!

と4時間ぐらい(実は5時間ぐらい?^^;)悩んでました。
それが以下のコード(擬似コードですが)。
さぁ、何処に問題があるでしょー?
(回答は下のほうに)

void Q::Dump() const
{
  ir9::OutputDebugStringF(
      _T("\n-----  Q [size = %d] -----\n"),
      m_stlCountList.size());
  TCountListCIt itEnd  = m_stlCountList.begin();
  for(TCountListCIt it = m_stlCountList.end(); it != itEnd; ++it)
  {
    const TCountListType& sPair = *it;
    ir9::OutputDebugStringF(
      _T("type : %s\tcount : %d\n"),
      g_cGenerateType.cast(sPair.second),
      sPair.first);
  }
}

void Q::Insert(CUINT nCount, CINT nPriority)
{
  m_stlCountList.push_back(
      TCountListType(nCount, nPriority));

  Dump();
}




……ね。もうね。
コードがテンパってますよね。ハハハハハハハ.... orz

----------------------------------------
答え

itEnd = m_stlCountList.begin();
it      = m_stlCountList.end();
この状態で for ループとな…。
end から begin に ++ していくって…終わらないじゃん!ヽ(`Д´)ノ