- 95 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 10:45:48 ]
- algorithmのstd::remove()について質問です。
std::vector<int> v; v.push_back(0); v.push_back(1); v.push_back(2); std::remove(v.begin(), v.end(), 0); std::remove(v.begin(), v.end(), 1); printf("%d", v.size()); 上記のようにすると、最後のvのサイズは1を期待するのですが3のままです。 でも、v[0]には本来の0ではなく2が入っています。 v[1]もv[2]も2が入っています。 std::remove()の代わりにvector::erase()を使用すれば、 v.size()は1を返します。 std::remove()はそういうモノなのでしょうか? VC2008で確認しています。
|

|