说明
std::map
是一个有序关联容器,包含具有唯一键的键值对key-value
。键使用比较函数Compare
比较来进行排序。
搜索,删除和插入操作具有对数复杂性。map通常实现为红黑树。
定义于头文件 <map>
特别注意,map中同一个键值只能存在一个实体
map
的特点是增加和删除节点对迭代器的影响很小,除了那个被操作的节点,对其他的节点都没有什么影响(只是内部的一些指针指向的改变)。对于map
的迭代器来说,可以修改实value
,而不能修改key
。
内部构造(基本操作函数和成员)
1、成员类型
成员类型 | Definition |
---|---|
key_type |
Key |
mapped_type |
T |
value_type |
std::pair<const Key, T> |
size_type |
无符号整数类型(通常是 std::size_t ) |
difference_type |
有符号整数类型(通常是 std::ptrdiff_t ) |
key_compare |
Compare |
allocator_type |
Allocator |
reference |
Allocator::reference (C++11 前)value_type& (C++11 起) |
const_reference |
Allocator::const_reference (C++11 前) const value_type& (C++11 起) |
pointer |
Allocator::pointer (C++11 前)std::allocator_traits<Allocator>::pointer (C++11 起) |
const_pointer Allocator::const_pointer (C++11 前) |
std::allocator_traits<Allocator>::const_pointer (C++11 起) |
iterator |
双向迭代器(BidirectionalIterator) |
const_iterator |
常双向迭代器 |
reverse_iterator |
std::reverse_iterator<iterator> |
const_reverse_iterator |
std::reverse_iterator<const_iterator> |
2、成员函数
元素的访问
名称 | 说明 |
---|---|
at (C++11) |
访问指定的元素,同时进行越界检查 (公开成员函数) |
operator[] |
访问指定的元素 (公开成员函数) |
迭代器
名称 | 说明 |
---|---|
be |