Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ เพื่อใช้งาน Set_Difference ใน STL


ความแตกต่างของสองชุดเกิดจากองค์ประกอบที่มีอยู่ในชุดแรกเท่านั้น ไม่ใช่ในชุดที่สอง องค์ประกอบที่คัดลอกโดยฟังก์ชันจะมาจากชุดแรกในลำดับเดียวกันเสมอ ส่วนประกอบในทั้งสองชุดจะได้รับการสั่งซื้อแล้ว

การดำเนินการชุดทั่วไปคือ -

  • ตั้งสหภาพ
  • กำหนดทางแยก
  • ส่วนต่างชุดสมมาตรหรือเอกสิทธิ์-OR
  • กำหนดส่วนต่างหรือการลบ

โปรแกรม C++ เพื่อใช้งาน Set_Difference ใน STL

อัลกอริทึม

Begin
   Declare set vector v and iterator st.
   Initialize st = set_difference (set1, set1 + n, set2, set2 +n, v.begin()))
   Print the number of elements different between two sets.
End.

โค้ดตัวอย่าง

#include<iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main () {
   int set1[] = {5,6,7,8,9,10};
   int set2[] = {1,2,3,4,6,7};
   vector<int> v(10);
   vector<int>::iterator it;
   sort (set1, set1 + 6);
   sort (set2, set2 + 6);
   it = set_difference(set1, set1 + 6, set2, set2 + 6, v.begin());
   v.resize(it - v.begin());
   cout << "The difference between the sets has " << (v.size()) << " elements: "<<endl;
   for (it = v.begin(); it != v.end(); ++it)
      cout<< *it<<" ";
      cout <<endl;
   return 0;
}

ผลลัพธ์

The difference between the sets has 4 elements
5,8,9,10