Предположим, что существует вектор только с двоичными элементами, подобными этому:
X = [0, 0, 1, 1]
Единственные различные перестановки:
X = [0, 0, 1, 1]
X = [0, 1, 0, 1]
X = [0, 1, 1, 0]
X = [1, 0, 0, 1]
X = [1, 0, 1, 0]
X = [1, 1, 0, 0]
Существует ли эффективный способ сделать это в C ++