我有一个c++ vector
与std::pair<unsigned long, unsigned long>
对象。我正在尝试使用生成矢量对象的排列std::next_permutation()
。但是,我希望排列具有给定的大小,类似于permutations
python中指定了预期返回排列的大小的函数。
基本上,c++
相当于
import itertools
list = [1,2,3,4,5,6,7]
for permutation in itertools.permutations(list, 3):
print(permutation)
(1, 2, 3)
(1, 2, 4)
(1, 2, 5)
(1, 2, 6)
(1, 2, 7)
(1, 3, 2)
(1, 3, 4)
..
(7, 5, 4)
(7, 5, 6)
(7, 6, 1)
(7, 6, 2)
(7, 6, 3)
(7, 6, 4)
(7, 6, 5)
感谢@ Jarod42添加了该python演示程序:)
—
d4rk4ng31
由于我不知道python结果,不得不站在我这一边,但是可以肯定的是我知道如何在C ++中做到这一点。
—
Jarod42
附带说明一下,您要如何将重复输入处理为
—
Jarod42
(1, 1)
?python排列提供重复的[(1, 1), (1, 1)]
,而std::next_permutation
避免重复(仅{1, 1}
)。
呃..没有 没有重复
—
d4rk4ng31