Class template unordered_set_member_hook
boost::intrusive::unordered_set_member_hook
 
Synopsis
Description
Поместите общедоступный элемент данныхunordered_set_member_hookдля хранения объектов этого класса в неупорядоченном_set/неупорядоченном_multi_set.unordered_set_member_hookсодержит данные, необходимые для поддержания неупорядоченного_set/неупорядоченного_multi_set и обеспечивает соответствующийЦенностные чертыкласс для unordered_set/unordered_multi_set.
Крючок допускает следующие варианты:<void_pointer<>>,<link_mode<>>и<store_hash<>>.
<void_pointer<>>- тип указателя, который будет использоваться внутри крючка и контейнера, сконфигурированного для использования этого крючка.
<link_mode<>>будет указывать режим соединения крючка<normal_link>,<auto_unlink>или<safe_link>.
<store_hash<>>будет указывать крючок для хранения хэша значения для ускорения перетасовки.
unordered_set_member_hook 
        public
       construct/copy/destruct
- <unordered_set_member_hook(); >Эффекты: Если<link_mode><auto_unlink>или<safe_link>инициализирует узел в несвязанное состояние.
 Бросает: Ничего. 
- <unordered_set_member_hook(constunordered_set_member_hook&); >Эффекты: Если<link_mode><auto_unlink>или<safe_link>инициализирует узел в несвязанное состояние. Аргумент игнорируется.
 Бросает: Ничего. Обоснование: Предоставление копи-конструктора делает занятия с помощью крючка STL-совместимыми, не заставляя пользователя выполнять какую-то дополнительную работу.<swap>может использоваться для эмуляции подвижной семантики.
 
- <unordered_set_member_hook&operator=(constunordered_set_member_hook&); >Эффекты: Пустая функция. Аргумент игнорируется. Бросает: Ничего. Обоснование: Предоставление оператора присваивания делает классы с использованием крючка STL-совместимыми, не заставляя пользователя выполнять некоторую дополнительную работу.<swap>может использоваться для эмуляции подвижной семантики.
 
- <~unordered_set_member_hook(); >Эффекты: Если<link_mode><normal_link>, деструктор ничего не делает (т.е. код не генерируется). Если<link_mode>является<safe_link>и объект хранится в<unordered_set>утверждение поднимается. Если<link_mode><auto_unlink>и<is_linked()>истинно, то узел несвязан.
 Бросает: Ничего. 
 
unordered_set_member_hook public member functions
- <voidswap_nodes(unordered_set_member_hook&other); >Эффекты: Переключение двух узлов меняет положение элементов, связанных с этими узлами, в одном или двух контейнерах. То есть, если узел является частью элемента e1, узел x является частью элемента e2 и оба элемента включены в контейнеры s1 и s2, то после операции обмена e1 находится в s2 в положении e2, а e2 находится в s1 в положении e1. Если один элемент не находится в контейнере, то после операции обмена другой элемент не находится в контейнере. Итераторы e1 и e2, относящиеся к этим узлам, недействительны. Сложность: Постоянство Броски: Ничего. 
- <boolis_linked()const; >Предварительное условие:<link_mode>должно быть<safe_link>или<auto_unlink>.
 Возвращение: истинно, если узел принадлежит контейнеру, ложно в противном случае. Эта функция может использоваться для проверки того, вернет ли<unordered_set::iterator_to>действительный итератор.
 Сложность: Постоянная 
- <voidunlink(); >Эффекты: Удаляет узел, если он вставлен в контейнер. Эта функция допускается только в том случае, если<link_mode><auto_unlink>.
 Бросает: Ничего.