ベクトル内の数値の重複を削除しようとしています。私はこれを使用してそれを行います:
vec1.erase( unique(vec1.begin(),vec1.end()) ,vec1.end());
Google で見つけたのですが、問題なく動作します。私の質問は、なぜですか? 私がcplusplusで読んだことによると、消去は最初のパラメーターから最後のパラメーターまで削除します。元:
vec1.erase(vec1.begin(),vec1.begin()+3); //removes first 3 elements
uniqueは最初の複製へのポインターを返すため、より単純なバージョンでは、私が書いているのは次のとおりです。
vec1.erase(first duplicate, vec1.end());
私のベクトルは最初の複製の後に終了すべきではありませんか?