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

C++STLでoperator=を設定します


関数operator=は、セットで1つのセットをコピーする(またはC ++ STLで別のセットに移動する)ために使用されます。これは、セットの通常の「=」代入操作として動作します。この関数にはオーバーロードされた形式があります-

  • コピー:-set&operator =(const set&s1)

    この関数は、セットs1のすべての要素を別のセットにコピーします。渡されたパラメータは同じタイプのセットです。

  • 使用法-sets1=s2;

  • 移動:-set&operator =(set &&s1)

    これにより、セットs1の要素が呼び出し元のセットに移動します。

  • 初期化子リスト:-set&operator =(initializer_list ilist)

    このバージョンは、初期化子リストilistの値を呼び出し元のセットにコピーします。

    使用法-sets1 ={1,2,3,4,5};

注-それらはすべて、setタイプのこのポインターの参照を返します。

次のプログラムは、C++プログラムでのラウンド関数の使用法を示すために使用されます-

#include <iostream>
#include <set>
using namespace std;
// merge function
int main(){
   set<int> set1, set2;
   // List initialization
   set1 = { 1, 2, 3, 4, 5 };
   set2 = { 10,11,12,13 };
   // before copy
   cout<<"set1 :";
   for (auto s = set1.begin(); s != set1.end(); ++s) {
      cout << *s << " ";
   }
   cout << endl;
   cout<<"set2 :";
   for (auto s = set2.begin(); s != set2.end(); ++s) {
      cout << *s << " ";
   }
   //after copy set1 to set2
   cout<<endl<<"After Copy"<<endl;
   cout<<"set1 :";
   set1=set2;
   for (auto s = set1.begin(); s != set1.end(); ++s) {
      cout << *s << " ";
   }
   return 0;
}

出力

set1 :1 2 3 4 5
set2 :10 11 12 13
After Copy
set1 :10 11 12 13

  1. STLにSet_Intersectionを実装するC++プログラム

    2つのセットの共通部分は、両方のセットに共通する要素によってのみ形成されます。関数によってコピーされる要素は、常に同じ順序で最初のセットから取得されます。両方のセットの要素はすでに注文されている必要があります。 一般的な集合演算は-です セットユニオン 交差点を設定 対称集合の差または排他的論理和 差または減算を設定 アルゴリズム Begin    Declare set vector v and iterator st.    Initialize st = set_intersection (set1, set1 + n, set2, s

  2. STLにSet_Differenceを実装するC++プログラム

    2つのセットの違いは、2番目のセットではなく、最初のセットに存在する要素によってのみ形成されます。関数によってコピーされる要素は、常に同じ順序で最初のセットから取得されます。両方のセットの要素はすでに注文されている必要があります。 一般的な集合演算は-です セットユニオン 交差点を設定 対称集合の差または排他的論理和 差または減算を設定 アルゴリズム Begin    Declare set vector v and iterator st.    Initialize st = set_difference (set1, set1 + n,