【发布时间】:2018-10-21 21:03:48
【问题描述】:
我有一个 Test 类,它包含一个 Letter 类的两个向量,这是一个用户定义的类型,已为其实现了小于运算符 (
class Test
{
vector<Letter> letter_box_a;
vector<Letter> letter_box_b;
}
因此,如果 letter_box_a 包含字母 A 和 B,并且 letter_box_b 包含 C 和 D,则 Test 的有效排列将是 (AB)(CD)、(BA)(CD)、(AB)(DC) 和 (BA)(直流)。
虽然我可以暴力破解它,但我试图编写一个更好(更优雅/高效)的函数,该函数将在底层容器上内部调用 std::next_permutation 允许我这样做
Test test;
while (test.set_next_permutation())
{
// Do the stuff
}
但这似乎比我最初预期的要复杂一些。我不一定需要 STL 解决方案,但想要一个优雅的解决方案。
【问题讨论】:
标签: c++ stl permutation