std::map::erase — cppreference.com
Материал из cppreference.com
<metanoindex/>
<tbody> </tbody>
|
|
(1) | (до C++11) (начиная с C++11) |
|
|
(2) | (до C++11) (начиная с C++11) |
|
|
(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 <map> #include <iostream> int main() { std::map<int, std::string> c = {{1, "one"}, {2, "two"}, {3, "three"}, {4, "four"}, {5, "five"}, {6, "six"}}; // удалить все нечетные элементы из c for(auto it = c.begin(); it != c.end(); ) { if(it->first % 2 == 1) it = c.erase(it); else ++it; } for(auto& p : c) { std::cout << p.second << ' '; } }
Вывод: