C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++でのSetとMultiSetの違い


C ++では、SetとMultiSetはどちらも、簡単にアクセスして挿入できるようにデータを格納するために使用されるデータ構造のタイプです。これら両方のデータ構造の特性に基づいて、SetとMultiSetを区別できます。

SetとMultiSetの重要な違いは次のとおりです-

Sr。いいえ。 キー セット マルチセット
1 定義 Set in C ++は、データをキーと値のペアで格納し、要素の値によって識別されるため、各値要素が一意である必要がある連想コンテナの一種として定義できます。 一方、MultiSetはC ++ STL(標準テンプレートライブラリ)の一部であり、ソートされたキーと値のペアを格納するSetのような連想コンテナとして定義されますが、一意のキーのみを格納するSetとは異なり、MultiSetは重複キーを持つことができます。
2 並べ替え Setの場合、データはソートされた順序で保存されます。 MultiSetの場合も、データは並べ替えられた順序で保存されます。
3 重複する値 [セット]で重複する値を保存することはできません。 一方、MultiSetの場合、重複する値を格納できます。
4 操作 Setの場合、一度挿入すると値を変更することはできませんが、削除または再挿入することはできます。 ただし、MultiSetの場合も、一度挿入すると値を変更できません。

設定

#include
#include
using namespace std;
main() {
   int data[15] = {11, 55, 22, 66, 33, 22, 11, 44, 77, 88, 66, 99, 66, 23, 41};
   set my_set;
   for(int i = 0; i<15; i++) { my_set.insert(data[i]);
   }
   set::iterator it;
   for(it = my_set.begin(); it != my_set.end(); it++) {
      cout << "Item: " << *it << endl;
   }
}

出力

Item: 11
Item: 22
Item: 23
Item: 33
Item: 41
Item: 44
Item: 55
Item: 66
Item: 77
Item: 88
Item: 99

マルチセット

#include
#include
using namespace std;
main() {
   int data[15] = {11, 55, 22, 66, 33, 22, 11, 44, 77, 88, 66, 99, 66, 23, 41};
   multiset my_set;
   for(int i = 0; i<15; i++) { my_set.insert(data[i]);
   }
   multiset::iterator it;
   for(it = my_set.begin(); it != my_set.end(); it++) {
      cout << "Item: " << *it << endl;
   }
}

出力

Item: 11
Item: 11
Item: 22
Item: 22
Item: 23
Item: 33
Item: 41
Item: 44
Item: 55
Item: 66
Item: 66
Item: 66
Item: 77
Item: 88
Item: 99

  1. C++文字列定数と文字定数の違い

    C ++では、一重引用符で囲まれた文字は文字リテラルです。文字型です。たとえば、「a」は、ASCIIベースのシステムでは値97のchar型です。 二重引用符で囲まれた1文字または文字列は、文字列リテラルを表します。これはconstchar[]型であり、文字列の長さ+1のサイズの配列を参照します。その余分な文字は文字列の終わりを示すためにあります。 文字列リテラルは、「abcdefg」のように任意の長さにすることができます。文字リテラルには、ほとんどの場合、1文字だけが含まれます。これらが印刷されるとき、文字列リテラルは、文字列で最初の\0またはNULL文字が検出されるまで印刷されます。

  2. Javaでのリストとセットの違い

    両方のインターフェイスの一覧表示と設定は、コレクションフレームワークに属しています。どちらのインターフェースもコレクションインターフェースを拡張します。これらは両方とも、オブジェクトのコレクションを単一のユニットとして格納するために使用されます。 jdk1.2より前は、オブジェクトを単一のユニットとしてグループ化するために、配列、ベクトル、およびハッシュテーブルを使用していました。 Sr。いいえ。 キー リスト 設定 1 位置アクセス リストは、コレクション内の要素への位置アクセスを提供します。 Setは、コレクション内の要素への位置アクセスを提供しません