map容器

构造函数
map c 产生一个空的map/multimap。其中不含任何元素
map c(op) 以op为排序准则,产生一个空的map/multimap
map c1(c2) 产生某个map/multimap的副本,所有元素均被复制
map c(begin , end) 以区间[begin , end]内的元素产生一个map/multimap
map c(begin , end , op) 以op为排序准则,利用[begin , end]内的元素生成一个map/multimap
析构函数
c.~map() 销毁所有元素,释放内存
声明格式
map / multimap<Key , Element> 一个map / multimap,以less<>( operator < )为排序准则
map / multimap<Key , Element , Op> 一个map / multimap,以op为排序准则 也可以自定义cmp
如:

	struct cmp{
                bool operator()( const string& a,const string& b){
                              return a.length()>b.length()
                }
      }

非变动性操作
c.size() 返回容器的大小
c.empty() 判断容器的大小是否为零。等同于c.size()==0,但可能更快
c.max_size() 返回可容纳的最大元素数量
c1 == c2 判断是否c1等于c2
c1 ! = c2 判断是否c1不等于c2,等同 ! (c1 == c2)
c1 < / <= c2 判断是否c1小于 / 小于等于c2
c1 > / >= c2 判断是否c1大于 / 大于等于c2
搜寻操作
count(key) 返回“键值等于key”的元素个数
find(key) 返回“键值等于key”的第一个元素,找不到就返回end()
lower_bound(key) 返回“键值为key”之元素的第一个可以安插的位置,也就是“键值 >= key”的第一个位置
upper_bound(key) 返回“键值为key”之元素的最后一个可以安插的位置,也就是“键值 > key”的第一个元素的位置
equal_range(key) 返回“键值为key”之元素的第一个可以安插的位置和最后一个可以安插的位置,也就是“键值 == key”的元素区间
赋值操作
c1 = c2 将2中的所有元素复制给1
c1.swap(c2) 将1和2中的元素互换
swap(c1,c2) 元素互换,此为全局函数
迭代器操作
c.begin() 返回一个双向迭代器(key被视为常数),指向第一元素
c.end() 返回一个双向迭代器(key被视为常数),指向最后元素的下一个位置
c.rbegin() 返回一个逆向迭代器,指向逆向遍历时的第一个元素
c.rend() 返回一个逆向迭代器,指向逆向遍历时的最后元素的下一位置
eg:
map<key , element> m;
map<key , element>::iterator it;
其中迭代器 it 遍历了 key/value pair所组成的序列。it->first 获取元素的 key,it->second 获取元素的 value。

安插、移除操作
c.insert(elem) 安插一份elem副本,返回新元素位置(不论是否成功)
c.insert(pos , elem) 在pos位置后安插一份elem副本,返回新元素位置(pos是个提示,指出安插操作的搜寻起点。提示恰当,可以提高效率)
c.insert(begin , end) 将区间[begin , end]内的所有元素的副本安插到c(无返回值)
c.erase(elem) 移除“实值value与elem相等”的所有元素,返回被移除的元素的个数
c.erase(pos) 移除迭代器pos所致位置上的元素,无返回值
c.erase(begin , end) 移除区间[begin , end]内的所有元素,无返回值
c.clear() 移除全部元素,将整个容器清空
​​​​​​​三种类型插入:
1.运用value_type eg: c.insert( map<string , float>::value_type( key , value ) );
2.运用pair< > eg: c.insert( pair<string , float>( key , value ) ); 返回值是一个指向被插入元素的迭代器和一个描述插入状态的bool值 pair< iterator , bool >
3.运用make_pair( ) eg:c.insert( make_pair( key , value ) );

operator [ ] 直接存取元素操作
c[key] 返回一个reference,指向键值为key的元素。如果元素尚未存在,就安插该元素

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值