117
правок
Изменения
→Специализация алгоритма для генерации следующего битового вектора
== Специализация алгоритма для генерации следующего битового вектора ==
Двигаемся справа налево по элементам объекта, пока не найдем элемент 0. Заменим его на 1, а все элементы справа на нули.
<code>
bool next_vec(vector<int> &a) {
int n = a.size();
int pos = n - 1;
while (pos != -1 && a[pos] == 1) --pos;
if (pos == -1) return false;
a[pos] = 1;
for (int i = pos + 1; i < n; ++i) a[i] = 0;
return true;
}
</code>
=== Пример работы ===