สมมติว่าคนสองคนต้องการเลือกเมืองต่างๆ พวกเขาได้แสดงรายการเมืองต่างๆ ในรายการที่แตกต่างกัน เราต้องช่วยกัน เพื่อค้นหาตัวเลือกทั่วไป เราเลยต้องหาเมืองเหล่านั้นให้เจอ โดยทั้งสองเมืองมีเครื่องหมายกำกับไว้
การดำเนินการนี้คล้ายกับคุณสมบัติทางแยกชุด เราจะนำสองรายการเป็นชุด จากนั้นดำเนินการตัดชุดเพื่อรับองค์ประกอบทั่วไป
ตัวอย่าง
#include <iostream> #include <vector> #include <algorithm> using namespace std; vector<string> commonInterest(string set1[], int n1, string set2[], int n2) { vector<string> v(min(n1, n2)); vector<string>::iterator it; // Sorting both the list sort(set1, set1 + n1); sort(set2, set2 + n2); it = set_intersection(set1, set1 + n1, set2, set2 + n2, v.begin()); return v; } int main() { string first[] = { "Kolkata", "Hyderabad", "Chennai", "Delhi" }; int n1 = sizeof(first) / sizeof(first[0]); string second[] = { "Mumbai", "Kolkata", "Durgapur", "Delhi" }; int n2 = sizeof(second) / sizeof(second[0]); vector<string> v = commonInterest(first, n1, second, n2); cout << "Common cities: "; for (int i = 0; i < v.size(); i++) cout << ' ' << v[i]; cout << endl; }
ผลลัพธ์
Common cities: Delhi Kolkata