3

から重複する値を削除する方法

std::vector <std::pair<UnicodeString, UnicodeString> > myVect;

組み込み関数はありますか、それともこのためのカスタムコードを書く必要がありますか

4

2 に答える 2

6

std::set(a)aが必要なものではなく、(つまり、後で削除するためだけに、で重複する要素を許可したいstd::vector)、(b)std::vector[である]の要素の順序を変更したくないと仮定します。 、現在の順序が重要です]、どちらも合理的な状況です...コンパレータを置き換えてそれに応じて変更するC++購入のリストから重複する値を削除するにはどうすればよいかに対するFredNurkの回答を適応させることができるはずです。vectorlistless

于 2011-03-22T12:00:13.667 に答える
2

ベクトルの順序を変更できる場合、それを行うための最良の方法は次のとおりです。

   std::sort(myVect.begin(), myVect.end());
   myVect.erase(std::unique(myVect.begin(), myVect.end()), myVect.end());

UnicodeStringが<演算子を受け入れることを確認してください。

ただし、std::setやstd::unordered_setなどの別の構造を使用して、挿入時に一意の保証を得ることができます。

于 2011-03-22T13:43:33.537 に答える