C++标准库学习之Maps
C++标准库学习之Maps #include<map>
C++ Maps是一种关联式容器,包含“关键字/值”对
1、插入一个元素:
insert()函数:
1)、插入val到pos的后面,然后返回一个指向这个元素的迭代器:
iterator insert( iterator pos, const pair<KEY_TYPE,VALUE_TYPE> &val );
2)、插入start到end的元素到map中:
void insert( input_iterator start, input_iterator end );
3)、只有在val不存在时插入val。返回值是一个指向被插入元素的迭代器和一个描述是否插入的bool值:
pair<iterator, bool> insert( const pair<KEY_TYPE,VALUE_TYPE> &val );
注:插入元素好复杂,有必要花时间研究一下。
2、删除一个元素:
erase()函数删除在pos位置的元素,或者删除在start和end之间的元素,或者删除那些值为key的所有元素。
语法:
void erase( iterator pos );
void erase( iterator start, iterator end );
size_type erase( const KEY_TYPE &key )
3、查找一个元素:
iterator find( const KEY_TYPE &key ):返回一个迭代器指向键值为key的元素,如果没找到就返回指向map尾部的迭代器。
iterator lower_bound( const KEY_TYPE &key ):返回一个迭代器,指向map中键值>=key的第一个元素。
iterator upper_bound( const KEY_TYPE &key ):返回一个迭代器,指向map中键值>key的第一个元素。
4、iterator begin():返回一个迭代器指向map的第一个元素。
iterator end():返回一个迭代器指向map的尾部。
rbegin() 返回一个指向map尾部的逆向迭代器
rend() 返回一个指向map头部的逆向迭代器
5、size_type count( const KEY_TYPE &key ):返回map中键值等于key的元素的个数。
pair equal_range( const KEY_TYPE &key ):返回两个迭代器——一个指向第一个键值为key的元素,另一个指向最后一个键值为key的元素。
6、get_allocator() 返回map的配置器 (不懂!!!适配器模式倒听说过)
key_compare key_comp():返回一个比较key的函数。(不懂)
value_compare value_comp():返回一个比较元素value的函数。
7、其他一些常用函数:
max_size() 返回可以容纳的最大元素个数
clear() 删除所有元素
empty() 如果map为空则返回true
size() 返回map中元素的个数
swap( map &obj ):交换obj和现map中的元素。