【C++】STL(Standard Template Library)相談室 4at TECH
【C++】STL(Standard Template Library)相談室 4 - 暇つぶし2ch131:デフォルトの名無しさん
05/11/12 18:10:52
>>130
なるほど,vectorの場合は挿入,削除をしたら再取得しないとだめなのですね.

それに関しては分かったのですが,その後いくつか内容を出力してみたところ,
どうやら

v.insert(v.begin(), start, end);

この時点ですでにstartとendがずれているようでした.
ためしにv(内容は0,1,2,3,4)に対して以下のような操作をしたところ

vector<int>::iterator start = v.begin();
vector<int>::iterator end = start;
end++;
v.insert(v.begin(), start, end);

これと,startをインクリメントしたもの

vector<int>::iterator start = v.begin();
start++;
vector<int>::iterator end = start;
end++;
v.insert(v.begin(), start, end);

これだと結果が変わらないのですが,insert(pos, start, end)の
このstartは挿入したい要素の始まりのイテレータで,
endは挿入したい要素の終わりの要素の次のイテレータを指定しているのですよね?

なぜかstartをインクリメントしてもしなくても結果が変わらないのですが
どうなっているんでしょうか?


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch