1

std::listシンプルな機能 ( pushpopclearなど)のようなユニークなコンテナーはありますstd::setか ?std::listpush_unique

4

1 に答える 1

6

STL は、効率的なコンテナーを提供することになっています。

重複を許可しないコンテナは、必要な値がコレクションに既に存在するかどうかを判断するために、高速検索をサポートする必要があります。

std::setこれは、O(log(n)) ルックアップ、挿入、および削除を可能にするものです。

std::unsorted_set一定時間のルックアップ、挿入、および削除が可能ですが、ほとんどの UDT タイプにハッシュ関数を提供する必要があり、反復子の無効化を引き起こす再ハッシュなどの問題に対処する必要があり、定義された順序がありません。アイテム (広告掲載オーダーでさえありません)。

重複を許可しないなどの単純なコレクションを使用する場合はstd::vector、独自のアダプターを提供する必要があります。

ただし、並べ替えられたコンテナーで問題が発生する理由はまだわかりstd::setません。たとえば、あなたが言うように、順序は重要ではありません。

于 2013-02-12T13:48:22.073 に答える