スレの流れを折ってしまって申し訳ないですが、
vectorのN番目の要素を削除したいときって、
erase()を使うしかなくて、erase()の引数はイテレータしかないですよね。

そこでこんな↓関数を作ってN番目の要素を指すイテレータを取得しようとしたんですが・・・
template <class Cont> Cont::iterator GetNItr(Cont c, int n){
Cont::iterator it = c.begin();
for(int i = 0; i < c.size(); ++i, ++it)
if(i == n) break;
return it;
}
帰ってくるのは不定値ばかり。一体なぜなんでしょうか?(試した環境はVC6です。)

それ以前に「N番目の要素のイテレータの取得」なんて
かなり使いそうな気がするんですがBoostとかにもないですよね。
やっぱり「イテレータ=反復子」という名前に反した使い方だからですかね??