Multiset: различия между версиями

Материал из Algocode wiki
Перейти к: навигация, поиск
(init)
 
м (added tags)
Строка 2: Строка 2:
 
<code>count</code> работает за $O(\log{n} + c)$, где  $c$ - количество искомых элементов. Поэтому, чтобы проверить наличие элемента $x$ в <code>multiset s</code>, надо воспользоваться: <code>s.find(el) != s.end()</code>.
 
<code>count</code> работает за $O(\log{n} + c)$, где  $c$ - количество искомых элементов. Поэтому, чтобы проверить наличие элемента $x$ в <code>multiset s</code>, надо воспользоваться: <code>s.find(el) != s.end()</code>.
 
<code>erase</code> удаляет все элементы с таким значением. Чтобы удалить один, надо написать: <code>s.erase(s.find(x))</code>. Но нужно быть аккуратнее с таким способом, т.к. здесь происходит удаление по итератору. То есть, если элемента в множестве не будет, <code>s.find(x)</code> вернет <code>s.end()</code>, и программа при удалении, скорее всего, упадет.
 
<code>erase</code> удаляет все элементы с таким значением. Чтобы удалить один, надо написать: <code>s.erase(s.find(x))</code>. Но нужно быть аккуратнее с таким способом, т.к. здесь происходит удаление по итератору. То есть, если элемента в множестве не будет, <code>s.find(x)</code> вернет <code>s.end()</code>, и программа при удалении, скорее всего, упадет.
 +
 +
{{Автор|Егор Гутров|egor_gutrov}}
 +
[[Категория:Конспект]]
 +
[[Категория:C++ и STL]]

Версия 09:57, 27 сентября 2019

multiset - то же, что и set, но может содержать повторяющиеся элементы. count работает за $O(\log{n} + c)$, где $c$ - количество искомых элементов. Поэтому, чтобы проверить наличие элемента $x$ в multiset s, надо воспользоваться: s.find(el) != s.end(). erase удаляет все элементы с таким значением. Чтобы удалить один, надо написать: s.erase(s.find(x)). Но нужно быть аккуратнее с таким способом, т.к. здесь происходит удаление по итератору. То есть, если элемента в множестве не будет, s.find(x) вернет s.end(), и программа при удалении, скорее всего, упадет.



Автор конспекта: Егор Гутров

По всем вопросам пишите в telegram @egor_gutrov