- 414 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 15:47:23 ]
- std::vector<int> v;
vに1, 3, 2, 3, 4がこの順番で入っているとします。 STLのremove()は処理後の有効な最後の要素を指すイテレータを返すので、 remove(v.begin(), v.end(), 3)とすると、返るイテレータは4を指していると思います。 だから、 v.erase(remove(v.begin(), v.end(), 3), v.end()); とすると、4から末尾まで消えてしまい、1, 2だけになる気がするのですが どうしてならないのでしょうか?
|

|