
On Jun 13, 2011, at 8:19 AM, Larry Evans wrote:
On 06/13/11 06:37, kelvSYC wrote:
So that the wheel doesn't have to be reinvented if it's already out there, is there something in boost that will take a bunch of sequences (lists, say) and return a sequence containing the cartesian product all of them, either as a tuple or after applying a function to them?
For example, is there something in boost that will, given a bunch of lists of integers, return a list of integers formed by multiplying together one member from each list?
To be more concrete, say you have:
std::vector<int> x({1,2,3}); std::vector<int> y({4,5});
and what you want is something like:
std::vector<std::vector<int> > z ( { { 4, 5} , { 8, 10} , { 12, 15} } };
Is that about right?
No, just a straight up cartesian product. So I'd want z to be equal to std::vector<std::vector<int>>({{1,4}, {1,5}, {2,4}, {2,5}, {3,4}, {3,5}}); Is there something in boost that will give me this sequence (or at least iterators therein?)