std::multimap<Key,T,Compare,Allocator>:: erase
|
iterator erase
(
iterator pos
)
;
|
(1) | (constexpr начиная с C++26) |
|
iterator erase
(
const_iterator pos
)
;
|
(2) |
(начиная с C++11)
(constexpr начиная с C++26) |
| (3) | ||
|
iterator erase
(
iterator first, iterator last
)
;
|
(до C++11) | |
|
iterator erase
(
const_iterator first, const_iterator last
)
;
|
(начиная с C++11)
(constexpr начиная с C++26) |
|
|
size_type erase
(
const
Key
&
key
)
;
|
(4) | (constexpr начиная с C++26) |
|
template
<
class
K
>
size_type erase ( K && x ) ; |
(5) |
(начиная с C++23)
(constexpr начиная с C++26) |
Удаляет указанные элементы из контейнера. Порядок оставшихся эквивалентных элементов сохраняется.
[
first
,
last
)
, который должен быть корректным диапазоном в
*
this
.
Compare
является
прозрачным
, и ни
iterator
, ни
const_iterator
не являются неявно преобразуемыми из
K
. Это позволяет вызывать данную функцию без создания экземпляра
Key
.
Ссылки и итераторы на удаленные элементы становятся недействительными. Остальные ссылки и итераторы не затрагиваются.
Итератор pos должен быть разыменовываемым. Следовательно, итератор end() (который является валидным, но не может быть разыменован) не может использоваться в качестве значения для pos .
Содержание
Параметры
Возвращаемое значение
1-3)
Итератор, следующий за последним удалённым элементом.
4)
Количество удалённых элементов.
5)
Количество удалённых элементов.
Исключения
1-3)
Ничего не выбрасывает.
4,5)
Любые исключения, выбрасываемые объектом
Compare
.
Сложность
Дана переменная
c
типа
1,2)
Амортизированная константа.
3)
log
(
c.
size
(
)
)
+
std::
distance
(
first, last
)
4)
log
(
c.
size
(
)
)
+
c.
count
(
key
)
5)
log
(
c.
size
(
)
)
+
c.
count
(
x
)
Примечания
ПримерЗапустить этот код #include <map>
#include <iostream>
int main()
{
std::multimap<int, std::string> map =
{
{1, "one"}, {2, "two"}, {3, "three"},
{4, "four"}, {5, "five"}, {6, "six"}
};
// erase all odd keys from map
for (auto it = map.begin(); it != map.end();)
{
if (it->first % 2 != 0)
it = map.erase(it);
else
++it;
}
for (const auto& pair : map)
std::cout << pair.second << ' ';
std::cout << '\n';
}
Вывод: two four six
Отчеты о дефектахСледующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.
Смотрите также
|