std::set::erase
Материал из cppreference.com
|
|
Эта страница была переведена автоматически с английской версии вики используя Переводчик Google. Перевод может содержать ошибки и странные формулировки. Наведите курсор на текст, чтобы увидеть оригинал. Щёлкните здесь, чтобы увидеть английскую версию этой страницы. (Вы можете помочь в исправлении ошибок и улучшении перевода. Для инструкций перейдите по ссылке.) |
<metanoindex/>
<tbody> </tbody> void erase( iterator position ); iterator erase( const_iterator position ); |
(1) | (до C++11) (начиная с C++11) |
void erase( iterator first, iterator last ); iterator erase( const_iterator first, const_iterator last ); |
(2) | (до C++11) (начиная с C++11) |
size_type erase( const key_type& key ); |
(3) | |
Удаляет указанные элементы из контейнера.
Оригинал:
Removes specified elements from the container.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
1)
Удаляет элемент
pos.Оригинал:
Removes the element at
pos.Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
2)
Удаляет элементы в диапазоне
[first; last).Оригинал:
Removes the elements in the range
[first; last).Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
3)
Удаляет все элементы с ключевыми
key значениеОригинал:
Removes all elements with the key value
keyТекст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Указатели и итераторы к удалённым элементам становятся недействительными. Другие итераторы и указатели остаются без изменений.
Параметры
| pos | — | итератор на элемент для удаления
Оригинал: iterator to the element to remove Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
| first, last | — | диапазон элементов для удаления
Оригинал: range of elements to remove Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
| key | — | Ключевое значение элементов для удаления
Оригинал: key value of the elements to remove Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
Возвращаемое значение
1-2)
Iterator, следующих за последним удаленным элементом.
Оригинал:
Iterator following the last removed element.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
3)
Количество элементов удалены.
Оригинал:
Number of elements removed.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Сложность
1) Amortized constant
2)
log(a.size()) + std::distance(first, last)3)
log(a.size()) + a.count(k)Пример
Запустить этот код
#include <set>
#include <iostream>
int main()
{
std::set<int> c = {1, 2, 3, 4, 5, 6, 7, 8, 9};
// удалить все нечетные элементы из c
for(auto it = c.begin(); it != c.end(); ) {
if(*it % 2 == 1)
it = c.erase(it);
else
++it;
}
for(int n : c) {
std::cout << n << ' ';
}
}
Вывод:
2 4 6 8
См. также
| очищает содержимое (public функция-элемент) |