今までイテレータ回す時
for (std::vector<int>::iterator it = v.begin() ; it < v.end(); ++it) {
// hogefuga
}
って書いてたけど
for (std::vector<int>::iterator it = v.begin() ; it != v.end(); ++it) {
// hogefuga
}
なんですね。itがv.end()以下かではなくて、itがv.end()ではないかで判断すべき。
もっと簡単に書く方法もあって、
for (auto it = v.begin(); it != v.end(); ++it) {
// hogefuga
}
こんな感じでautoを使うと便利。このときconstはどうなるんだろう。ブロック内で変更がなければ自動的にconstつけてくれたりするんだろうか。そこまではしないか。