मान लीजिए कि हमारे पास दो क्रमबद्ध सरणियाँ हैं arr1 और arr2, वहाँ आकार क्रमशः m और n हैं। हमें दो सरणियों के सापेक्ष पूरक खोजने होंगे। इसका मतलब है कि हमें उन सभी तत्वों को खोजने की जरूरत है जो arr1 में मौजूद हैं, लेकिन arr2 में नहीं। तो अगर एरे ए =[3, 6, 10, 12, 15], और बी =[1, 3, 5, 10, 16] की तरह हैं, तो परिणाम [6, 12, 15]
होगा।इसे हल करने के लिए, हम set_difference फ़ंक्शन का उपयोग कर सकते हैं। चूंकि समस्या मूल रूप से अंतर ऑपरेशन सेट है।
उदाहरण
#include<iostream> #include<algorithm> #include<vector> using namespace std; int main() { int first[] = {3, 6, 10, 12, 15}; int second[] = {1, 3, 5, 10, 16}; int n = sizeof(first) / sizeof(first[0]); vector<int> temp(5); vector<int>::iterator it, ls; sort(first, first + 5); sort(second, second + 5); cout << "First array :"; for (int i = 0; i < n; i++) cout << " " << first[i]; cout << endl; cout << "Second array :"; for (int i = 0; i < n; i++) cout << " " << second[i]; cout << endl; ls = set_difference(first, first + 5, second, second + 5, temp.begin()); cout << "The result of relative complement "; for (it = temp.begin(); it < ls; ++it) cout << " " << *it; cout << endl; }
आउटपुट
First array : 3 6 10 12 15 Second array : 1 3 5 10 16 The result of relative complement 6 12 15