Пространства имён
Варианты
Действия

std::set::erase

Материал из cppreference.com
< cpp‎ | container‎ | set

 
 
 
std::set
Функции-элементы
Итераторы
Ёмкость
Модификаторы
set::erase
(C++17)
Просмотр
Наблюдатели
Функции, не являющиеся элементами
(C++20)
(до C++20)(до C++20)(до C++20)(до C++20)(до C++20)(C++20)
Принципы вывода (C++17)
 
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 функция-элемент) [править]