OK、私は何かを一度だけクリアしたいと思います。次のような法線ベクトルがある場合:
std::vector<Object*> coll;
そして私はその要素を調べたいと思います、私はそれについて行くための3つの方法を知っています:
1.int
次のようなインデックスを使用します。for(int i = 0; i < coll.size(); ++i)
2.インデックスを使用しtype_t
ます。1と同じです。for(size_t i = 0; i < coll.size(); ++i)
1と2の両方の要素にアクセスするには:coll[i]
また
3.const_iterator
のように、を使用します。
std::vector<Object*>::const_iterator i;
for(i = coll.begin(); i != coll.end(); ++i)
// stuff
で要素にアクセスし*it
ます。
私は3番目の方法が最も失敗のない方法であることに気づきました(そして聞いた)が、ベクトルの割り当てを解除することになると、それは非常に不快ですconst_iterator
。その値を失い、ループを続行できなくなります。delete (*it)
coll.erase(it)
for
これを行うための提案された/良い方法は何ですか?