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

Minimum Index Sum สำหรับ Common Elements ของ Two Lists ใน C++

สมมติ 2 คนเลือกเมือง คนละ List ต้องช่วยหา Common Choices ค้นหาเมืองที่ทั้งคู่เลือก

Operation นี้คล้าย Set Intersection นำ 2 Lists มาเป็น Set แล้วหา Intersection

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

#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;
    sort(set1, set1 + n1);
    sort(set2, set2 + n2);
    it = set_intersection(set1, set1 + n1, set2, set2 + n2, v.begin());
    v.resize(it - 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