Tôi có một c++ vector
với std::pair<unsigned long, unsigned long>
các đối tượng. Tôi đang cố gắng tạo ra hoán vị của các đối tượng của vectơ bằng cách sử dụng std::next_permutation()
. Tuy nhiên, tôi muốn các hoán vị có kích thước nhất định, bạn biết, tương tự như permutations
hàm trong python nơi kích thước của hoán vị trả về dự kiến được chỉ định.
Về cơ bản, c++
tương đương với
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)
(1, 1)
thế nào? hoán vị python cung cấp trùng lặp [(1, 1), (1, 1)]
, trong khi std::next_permutation
tránh trùng lặp (chỉ {1, 1}
).