8

C ++セットの使用方法についていくつか質問があります(std :: set)

  1. 2つのC++セットの和集合、共通部分、または差を取得する方法はありますか?(それを行うために独自の関数を作成するのは非常に簡単ですが、そのための組み込み関数があるかどうかを知りたかったのです)

  2. C ++セットをマップのキーとして使用できますか?

4

2 に答える 2

17

set_difference()、、、および関数set_union()を使用します。set_intersection()set_symmetric_difference()

セットとマップは、比較できるすべてのキータイプをサポートします。デフォルトでは、これはタイプがoperator<()定義されていることを意味しますが、独自のコンパレータを提供できます。C ++セットはoperator<()定義されていないため、独自のコンパレータを提供しない限り、キーとして使用することはできません。

于 2009-11-15T00:03:07.683 に答える
3

それらを比較できるクラスまたは関数を提供する限り、マップ内のキーとして何でも使用できます。これが例です。

于 2009-11-14T23:58:08.940 に答える