我想得到一些类似于“ x select 3”的东西。例如
[1, 2, 3, 4] choose 3
-> [1,2,3]
-> [1,2,4]
-> [1,3,4]
-> [2,3,4]
现在有几种方法可以做到,但是我想对这样定义的变量做类似的事情
std::vector<std::vector<std::tuple<int, int, int>>> v;
但是我想选择整个类型
std::vector<std::tuple<int, int, int>>>
所以人们可以将其视为
std::vector<a> choose 3
环顾四周,我发现这里可以提供一些帮助。特别是for_each_reversiable_permutation
我认为用法是
for_each_reversible_permutation(v.begin(), v.begin() + r, v.end(), f(v.size()));
在我的情况下应该是
for_each_reversible_permutation(v.begin(), v.begin() + 5, v.end(), v.size());
尽管我不确定,因为那行不通。
我也不知道是否有一种更快的更具体的方式来生成std::vector
的组合