STLセット詳しい使い方

コレクション(集合)はその要素の値が一意である含んでいる容器です。

ライブラリを使用します

書式#include < 設定 >

 

定義

最も簡単:

設定 < 整数 >;

サポートカスタムされているとして、設定およびその他のSTL。

小規模から大規模までのセットが自動的に要素なので、私たちは、プライオリティキューは非常に似ているその比較関数を設定することができます。

カスタム比較関数を使用して方法1:

書式#include <stdio.hに> 
する#include < 設定 > 
書式#include < 文字列 >
 使用して 名前空間はstdを、
構造体の人々
{ 
    文字列名。
    int型の年齢; 
}。

構造体CMP {
     ブール 演算子  ()(人物、人物B)
    { 
        場合(a.name == b.name)を返す リターン a.age <b.age。       // 按照年龄由小到大进行排序
    } 
}。
 

セット <ピープル、CMP> S;

方法2演算子のオーバーロード

する#include <stdio.hに> 
する#include < SET > 
の#include < ストリング >
 使用して 名前空間STD;
 構造体
{ 
    文字列名;
     int型の年齢、
     BOOLの 演算子 <(CONST人物P)CONST   // 演算子オーバーロード
    {
         IF(名前== P .nameの)復帰 はfalse ; // 名前で再ために
        返す年齢<p.age;        // 年齢によって昇順ソート
    } 
 
}; 

SET <ピープル> Sを、

第3幕フレンド関数

#include <ビット/ STDC ++ H.> 使用して名前空間STD; 構造体
{ 文字列名;
     INT 年齢、
    友人BOOLの演算子 <(constの人物A&、CONST   人物&B)
     {
         IF(a.name == b.name)リターンfalseに ; // 名前で再へ戻り a.age <b.age;        // 年齢別の昇順ソートを    } 
}; SET <ピープル> S;

 


      
        

 

トラバーサル

また、あなたはイテレータのアクセスを必要とします:

セット <ピープル>は::それをイテレータ。
以下のための(それは)(s.beginを=;それ= s.end();それ++! 
{ 
    のprintf(" 姓名:%sの年龄:%dは\ nを"、(*それ).name.c_str()、(* それ).age)。
}

* tのアクセス設定値の方法を採用する必要があります。

 

その他の用途:

開始();最初の要素のアドレス
をクリア();容器セットクリア
COUNT(x)は、要素のx個
の空の場合、(空の)
最終アドレスの背後に一つの元素; END()
ERASE(x)は、削除元素Xの
検索(X);終わりリターンが存在しない場合、アドレスを返す、要素xを見つける
(x)の挿入;元素Xの添加
サイズ()要素の数

おすすめ

転載: www.cnblogs.com/dyhaohaoxuexi/p/11324742.html