C++ Study Notes 10

->
map
map中每个元素都是pair
pair第一个元素为key(键值),起索引作用,第二个元素为value(实值)
所有元素会根据元素的键值自动排序

本质:
    map/multimap属于关联式容器,底层结构是二叉树
优点:
    可以根据键值key快速找到value值
map和multimap区别:
    map不允许容器中有重复key的元素,insert插重复key的不会覆盖
    multimap允许

构造:
    map<T1,T2> mp;      默认构造
    map(const map & mp);        拷贝构造
赋值:
    map & operator=(const map &mp);

->
map大小和交换操作
函数原型:
    size();        返回元素个数
    empty();    判空
    swap(st);   交换

map插入和删除
函数原型:
    insert(elem);
        几种insert方式:
        map<int, int> m;
        m.insert(pair<int, int>(1, 10));
        m.insert(make_pair(2, 20));
        m.insert(map<int, int>::value_type(3, 30));
        m[4]=40;                      不建议用这种方式插入,因为当这个key不存在的时候,会自动创建出来
        中括号可以用来: 通过key访问value  m[key] 返回对应的value



    clear();
    erase(pos);         删除迭代器位置的元素,返回下一个元素的迭代器
    erase(beg,end);     删除区间[beg,end)的所有元素,返回下一个元素的迭代器
    erase(key);         删除容器中值为key的元素,只会按照key,如果没有不会改变

->
map查找和统计
函数原型:
    find(key);      查找key是否存在,返回该键的元素迭代器;若不存在,返回end()
    count(key);     统计key元素的个数,结果为 0或者 1


->
map排序,默认是按照key从小到大
技术:
    仿函数
和set一样,创建一个自定义的排序类,重载()





    
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值