Domanda

Domande simili sono state poste prima, ma non posso trovare una corrispondenza esatta alla mia domanda.

Ho 4 vettori ognuno dei quali detengono tra 200-500 4 interi cifre. Il numero esatto di elementi in ciascun vettore varia ma potrebbe risolvere a un valore specifico. Ho bisogno di trovare tutte le possibili combinazioni di elementi in questi 4 vettori.

es:

v1 [10, 30] v2 [11, 45] v3 [63, 56] v4 [82, 98]

in modo che avrei avuto qualcosa di simile:

[10, 11, 63, 82]; [30, 11, 63, 82]; [10, 45, 63, 82]; [10, 45, 56, 82], ecc ..

C'è un nome comune per questo algoritmo in modo da poter trovare alcuni riferimenti ad esso on-line? In caso contrario, qualche consiglio su attuazione del presente in C ++ sarebbe utile. Le prestazioni non è molto più di un problema in quanto ho solo bisogno di eseguire l'algoritmo di una volta. C'è qualcosa integrato nel STL?

È stato utile?

Soluzione

Non c'è molto di un algoritmo ...

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;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top