سؤال

تم طرح أسئلة مماثلة من قبل ولكن لا يمكنني العثور على تطابق دقيق لسؤالي.

لدي 4 ناقلات يحمل كل منها بين 200-500 من أعداد صحيحة مكونة من 200 رقما. يختلف العدد الدقيق للعناصر في كل متجه ولكن يمكنني إصلاحه إلى قيمة محددة. أحتاج إلى العثور على جميع المجموعات الممكنة للعناصر في هذه المخلفات الأربعة.

على سبيل المثال:

V1 [10، 30] V2 [11، 45] V3 [63، 56] V4 [82، 98

لذلك سأحصل على شيء من هذا القبيل:

10، 11، 63، 82]؛ [30، 11، 63، 82]؛ [10، 45، 63، 82]؛ [10، 45، 56، 82] إلخ.

هل هناك اسم شائع لهذه الخوارزمية حتى أتمكن من العثور على بعض المراجع إليها عبر الإنترنت؟ وإلا فإن أي نصائح حول تنفيذ هذا في C ++ ستكون مفيدة. الأداء ليس الكثير من القضية حيث أحتاج إلا إلى تشغيل الخوارزمية مرة واحدة. هل هناك أي شيء بنيت في STL؟

هل كانت مفيدة؟

المحلول

ليس الكثير من الخوارزمية ...

for(vector<int>::const_iterator i1 = v1.begin(); i1 != v1.end(); ++i1)
    for(vector<int>::const_iterator i2 = v2.begin(); i2 != v2.end(); ++i2)
        for(vector<int>::const_iterator i3 = v3.begin(); i3 != v3.end(); ++i3)
            for(vector<int>::const_iterator i4 = v4.begin(); i4 != v4.end(); ++i4)
                cout << "[" << *i1 << "," << *i2 << "," << *i3 << "," << *i4 << "]" << endl;
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top