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