容器之 MAP

map 就类似于 oc 中的字典,由一个 key 和一个 value 成对出现组成

【map 的主要函数】

begin()          //返回指向map头部的迭代器
clear()        // 删除所有元素
count()          //返回指定元素出现的次数
empty()         // 如果map为空则返回true
end()           // 返回指向map末尾的迭代器
equal_range()   // 返回特殊条目的迭代器对
erase()         // 删除一个元素
find()          // 查找一个元素
get_allocator()  //返回map的配置器
insert()        // 插入元素
key_comp()     //  返回比较元素key的函数
lower_bound()   // 返回键值>=给定元素的第一个位置
max_size()      // 返回可以容纳的最大元素个数
rbegin()         //返回一个指向map尾部的逆向迭代器
rend()           //返回一个指向map头部的逆向迭代器
size()           //返回map中元素的个数
swap()           // 交换两个map
upper_bound()    // 返回键值>给定元素的第一个位置
value_comp()      //返回比较元素value的函数

【map的主要使用方法】

int main(int argc, const char * argv[]) {
    map<int,string>mapDemo;//第一个类似于 key,第二个类似于 value
    //添加数据
    mapDemo.insert(pair<int, string>(1,"hu"));//第一种添加方法
    mapDemo.insert(map<int, string>::value_type(2,"dong"));//第二种添加方法
    mapDemo[3]="blog";//第三种添加方法,也是最简单的方法
    //输出
    cout<<mapDemo[1]<<endl;
    mapDemo[1]="dong";//是一一对应的,现在就覆盖了第一次的“hu”
    //或者使用 at
    cout<<mapDemo.at(1)<<endl;
    //迭代器输出
    map<int, string>::iterator it;
    for (it=mapDemo.begin(); it!=mapDemo.end(); it++) {
        cout<<it->first<<endl;//输出前面的
        cout<<it->second<<endl;//输出后面的
    }
    //查找
    it=mapDemo.find(2);//查找的是前面的那个 key,而不是后面的那个值
    if (it==mapDemo.end()) {
        cout<<"no 2";
    }
    else
        cout<<it->second<<endl;
    //删除
    it=mapDemo.find(2);
    mapDemo.erase(it);
    
    //排序,Map中的元素是自动按key升序排序,所以不能对map用sort函数,就比如给一个杂乱的插入顺序,还是会自动排好
    map<int, string>demo2;
    demo2[1]="1";
    demo2[4]="4";
    demo2[3]="3";
    demo2[2]="2";
    map<int, string>::iterator it2;
    for (it2=demo2.begin(); it2!=demo2.end(); it2++) {
        cout<<it2->second<<endl;//输出前面的
    }
    //交换 swap 函数,Map中的swap不是一个容器中的元素交换,而是两个容器交换
    //比如交换1,2
    swap(mapDemo, demo2);
    for (it2=demo2.begin(); it2!=demo2.end(); it2++) {
        cout<<it2->second<<endl;//输出前面的
    }
    return 0;
}

【map 的 demo】

GitHub下载地址:https://github.com/DamonHu/HudongMapDemo

GitOsc下载地址:http://git.oschina.net/DamonHoo/HudongMapDemo

Last modification:January 1st, 1970 at 08:00 am
如果看了这个文章可以让你少加会班,可以请我喝杯可乐
已打赏名单
微信公众号

Leave a Comment