C++ 参考手册
- C++11
- C++14
- C++17
- C++20
- C++ 编译器支持情况表
- 独立与宿主实现
- C++ 语言
- C++ 关键词
- 预处理器
- C++ 标准库头文件
- 具名要求
- 功能特性测试 (C++20)
- 工具库
- 类型支持(基本类型、RTTI、类型特性)
- 概念库 (C++20)
- 错误处理
- 动态内存管理
- 日期和时间工具
- 字符串库
- 容器库
- std::array
- std::vector
- std::map
- std::unordered_map
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::operator[]
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::get_allocator
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::begin, std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::cbegin
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::empty
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::end, std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::cend
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::unordered_map
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::~unordered_map
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::operator=
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::size
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::max_size
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::clear
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::insert
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::insert_or_assign
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::emplace
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::emplace_hint
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::try_emplace
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::erase
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::swap
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::extract
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::merge
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::at
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::count
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::find
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::contains
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::equal_range
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::begin(size_type), std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::cbegin(size_type)
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::end(size_type), std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::cend(size_type)
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::bucket_count
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::max_bucket_count
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::bucket_size
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::bucket
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::load_factor
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::max_load_factor
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::rehash
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::reserve
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::hash_function
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::key_eq
- operator==,!=(std::unordered_map)
- std::swap(std::unordered_map)
- std::erase_if (std::unordered_map)
- std::unordered_map 的推导指引
- std::priority_queue
- std::span
- std::forward_list
- std::deque
- std::list
- std::set
- std::multiset
- std::multimap
- std::unordered_set
- std::unordered_multiset
- std::unordered_multimap
- std::stack
- std::queue
- std::vector<bool>
- 结点把柄 (C++17)
- 注释
- 迭代器库
- 范围库 (C++20)
- 算法库
- 数值库
- 输入/输出库
- 文件系统库
- 本地化库
- 正则表达式库
- 原子操作库
- 线程支持库
- 实验性 C++ 特性
- 有用的资源
- 索引
- std 符号索引
- 协程支持 (C++20)
- C++ 关键词
位置:首页 > C++ 参考手册 >容器库 >std::unordered_map > std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::erase
std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::erase
iterator erase( const_iterator pos ); |
(1) | (C++11 起) |
iterator erase( const_iterator first, const_iterator last ); |
(2) | (C++11 起) |
size_type erase( const key_type& key ); |
(3) | (C++11 起) |
从容器移除指定的元素。
1) 移除位于
pos
的元素。2) 移除范围
[first; last)
中的元素,它必须是 *this 中的合法范围。3) 移除关键等于
key
的元素(若存在一个)。到被擦除元素的引用和迭代器被非法化。其他迭代器和引用不被非法化。
迭代器 pos
必须合法且可解引用。从而 end() 迭代器(合法,但不可解引用)不能用作 pos
所用的值。
保留未被擦除的元素顺序(这使得可能在迭代通过容器时擦除单独的元素)。 |
(C++14 起) |
参数
pos | - | 指向要移除的元素的迭代器 |
first, last | - | 要移除的元素范围 |
key | - | 要移除的元素关键值 |
返回值
1-2) 后随最后被移除的元素的迭代器。
3) 被移除的元素数。
异常
1,2) (无)
3) 任何
Compare
对象所抛的异常复杂度
给定 unordered_map
的实例 c
:
1) 平均情况:常数,最坏情况: c.size()
3) 平均情况: c.count(key) ,最坏情况: c.size()
示例
运行此代码
#include <unordered_map> #include <iostream> int main() { std::unordered_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 << ' '; }
可能的输出:
two four six
参阅
清除内容 (公开成员函数) |