C++相談室 part31
■ このスレッドは過去ログ倉庫に格納されています
0306デフォルトの名無しさん
NGNGvectorの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とかにもないですよね。
やっぱり「イテレータ=反復子」という名前に反した使い方だからですかね??
■ このスレッドは過去ログ倉庫に格納されています