Create  Edit  Diff  FrontPage  Index  Search  Changes  Login

IntSizetIterator

vector<int> をどうぶん回すべきか。ありそうな主張を適当にまとめてみる。個人的には、

  • まわりのコードにあわせる
    • 仕事じゃなければ、例外として気分で逆らってみたりする
  • 仕事なら基本 const_iterator
  • 趣味でかつ gcc の warning option つけてるような時は size_t
  • 適当な時は int
    • 例外として気分で変える

なんか書いてない派閥の主張とかある人は足してくださると良いかとー

int 派

Pros

  • シンプルだよ
  • アンダーフローするコードはありえないよ

Cons

  • 64bit 環境で warning 出るんじゃボケ

size_t 派

Pros

  • 高速な時があるよ
  • 型一致してるし
  • 本質的に index は正または 0 であるとかなんとか

Cons

  • なんか include しないと使えないやろボケ
  • デクリメントする時アンダーフローするんじゃボケ
  • なんとなくかっこ悪いんじゃボケ
  • printf で出力する方法知らんのじゃボケ
    • iostream 使えよボケ
  • size じゃないもの(index)に size_t は違和感あるんじゃボケ

const_iterator 派

Pros

  • list に変えても動くよ
  • v[i] より *iter の方がなんとなく良くないか
  • なんとなくたくさんタイプすると仕事してる気になるよ

Cons

  • 長いんじゃボケ
  • typedef とかもうざいんじゃボケ
  • list なんて使わねーよボケ
  • set とかに変えることとかはありえねーよボケ
  • vector<Obj*> をぶんまわすと (*iter)-> となってキモいよボケ
  • index 欲しくなった時にうざいんじゃボケ
  • iterator はデバッグ出力しにくいんじゃボケ

iterator 派

いるのだろうか。

Pros

Cons

  • ちゅーとはんぱじゃボケ

C++0x 派

for_each(v.begin(), v.end(), <>(int x) (cout << x << endl));

とか

for (int x : v) cout << x << endl;

とか

for (auto iter = v.begin(); iter != v.end(); ++iter) cout << *iter << endl;

とかかな

Pros

Cons

  • 実装されてねーよボケ
  • 中二病かボケ

unsigned, unsigned int 派

Pros

Cons

  • unsinged と typo するんじゃボケ

size_type 派

Pros

  • size_typeがsize_tじゃないコンテナでも動くよ

Cons

  • そんなコンテナあるのかボケ
Last modified:2009/01/19 22:35:44
Keyword(s):
References:[FrontPage]