p = trunk_base # вершина из которой растет черенок
v = <next vertex> # соседняя вершина к p вдоль цикла
while power[v] != 3:
for n in G[v]:
if n != p:
v = n
p = v
breakОбщий делитель 2 и 4, как математик любитель, заявляю 4
= delete;) вместо деланья их приватными. Приватным делают просто конструктор, когда надо запретить кому-то создавать объект самостоятельно вне специальной фабрики. То есть ошибка вылезает из за того, что компилятор заносит в таблицу виртуальных методов реализации обоих методов push и видит, что lib::LinkedList::push(const T&) пытается получить доступ к приватному конструктору копирования?
push(const T&), таки должна быть сгенерирована. И тут они видит в ней ошибку. Я если честно не совсем понимаю почему он начинает ругаться до того, как я эту функцию вызову, я же не требую от него выполнения этого метода.
asdfhjasdfghjsdfvvhj;. Компилятор вам ругнется на ошибку в фукнкции. Даже если она не вызывается. Так что тут вам шаблон наоборот иногда даже поблажку дает. Что вас и запутало.это же вообще обьявление функции, это не инстанцирует объект класса
cout << "aaa"; в конструктор и убедитесь, что оно вызывается.Можно как то обойти эту проблему?
Динамическое программирование позволило бы быстрее подсчитать сколько таких множеств есть или проверить, а есть ли они вообще. Раз в задаче надо их сами вывести, то задача решается только полным перебором. С помощью ДП его можно ускорить, но не во всех случаях, поэтому заморачиваться смысла нет.