概念
C++ Multimaps
和map很相似,但是MultiMaps
允许重复的元素。
Map
:一对一;有序( 自动按key
升序 );可用[ ]
赋值和取值;采用 红黑树 结构;实现O(lgn)
的查找,插入和删除。Multimap
:多对多;有序( 自动按key
升序 );无[ ]
操作;可自定义排序函数;采用 红黑树 结构。
头文件
1 |
名字空间
1 | std |
构造函数
定义:
1 | multimap<Type,Type> |
常用函数
begin
语法:
1 | iterator begin(); |
begin()
函数返回一个迭代器,指向multimap
的第一个元素。
clear
语法:
1 | void clear(); |
clear()
函数删除multimap
中的所有元素。
count
语法:
1 | size_type count( const key_type &key ); |
count()
函数返回multimap
中键值等于key
的元素的个数。
empty
语法:
1 | bool empty(); |
empty()
函数返回真(true
)如果multimap
为空,否则返回假(false
)。
end
语法:
1 | iterator end(); |
end()
函数返回一个迭代器,指向multimap
的尾部。
equal_range
语法:
1 | pair equal_range( const key_type &key ); |
equal_range()
函数查找multimap
中键值等于key
的所有元素,返回指示范围的两个迭代器。
erase
语法:
1 | void erase( iterator pos ); |
erase()
函数删除在pos
位置的元素,或者删除在start
和end
之间的元素,或者删除那些值为key
的所有元素。
find
语法:
1 | iterator find( const key_type &key ); |
find()
函数返回一个迭代器指向键值为key
的元素,如果没找到就返回指向multimap
尾部的迭代器。
get_allocator
语法:
1 | allocator_type get_allocator(); |
get_allocator()
函数返回multimap
的配置器。
insert
语法:
1 | iterator insert( iterator pos, const TYPE &val ); |
insert()
函数:
- 插入
val
到pos
的后面,然后返回一个指向这个元素的迭代器。 - 插入
start
到end
的元素到multimap
中。 - 只有在
val
不存在时插入val
。返回值是一个指向被插入元素的迭代器和一个描述是否插入的bool
值。
key_comp
语法:
1 | key_compare key_comp(); |
key_comp()
函数返回一个比较key
的函数。
lower_bound
语法:
1 | iterator lower_bound( const key_type &key ); |
lower_bound()
函数返回一个迭代器,指向multimap
中键值>=key
的第一个元素。
max_size
语法:
1 | size_type max_size(); |
max_size()
函数返回multimap
能够保存的最大元素个数。
rbegin
语法:
1 | reverse_iterator rbegin(); |
rbegin()
函数返回一个指向multimap
尾部的逆向迭代器。
rend
语法:
1 | reverse_iterator rend(); |
rend()
函数返回一个指向multimap
头部的逆向迭代器。
size
语法:
1 | size_type size(); |
size()
函数返回multimap
中保存的元素个数。
swap
语法:
1 | void swap( multimap &obj ); |
swap()
交换obj
和现mulitmap
中的元素。
upper_bound
语法:
1 | iterator upper_bound( const key_type &key ); |
upper_bound()
函数返回一个迭代器,指向multimap
中键值>key
的第一个元素。
value_comp
语法:
1 | value_compare value_comp(); |
value_comp()
函数返回一个比较元素value
的函数。