以下の内容はhttps://toburau.hatenablog.jp/entry/20181116/1542385875より取得しました。


Iteratorを回す

vectorなどのコンテナの要素すべてに何らかの処理を行う場合にwhile文を使うことがある。
この場合、自分はIteratorのインクリメントを忘れて無限ループに入ってしまうというミスをたびたび起こしてしまう。

std::vector<int> v;
std::vector<int>::iterator itr;
    
itr = v.begin();
while(itr != v.end())
{
    // 処理

    itr++;  // これをよく忘れる
}

while文を書いたあとに要素に行う処理の実装に意識が行ってしまうために忘れてしまうのだろう。なので、このような場合は処理を書く前にまずインクリメントでループが正しく行われるように書く癖をつけなくては。
まあ、全部の要素を回すだけなら、for文を使ったほうが良いかも。

for(auto x : v)
{
    // 処理
}



以上の内容はhttps://toburau.hatenablog.jp/entry/20181116/1542385875より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14