Вопрос

подобные вопросы задавались и раньше, но я не могу найти точного ответа на свой вопрос.

У меня есть 4 вектора, каждый из которых содержит от 200 до 500 4-значных целых чисел.Точное количество элементов в каждом векторе варьируется, но я мог бы зафиксировать его до определенного значения.Мне нужно найти все возможные комбинации элементов в этих 4 векторах.

например:

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