栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++ STL map基础知识

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++ STL map基础知识

一、时间复杂度

O(logn)

二、优点

可使用键作为下标来获取一个值。请注意:关联的本质在于元素的值与某个特定的键相关联,而并非通过元素在数组中的位置来获取。

三、头文件

#include

四、操作方法
    定义
map map1;    //默认为空
    访问方法
map mp ;
    mp["hello"] = 8 ;
    mp["hello"] = 100 ;
    mp["aloha"] = 666 ;
    mp["good"] = 777 ;
    for(map::iterator it=mp.begin();it!=mp.end();it++){
        cout << it->first << ' ' << it->second << endl ;
    }
输出结果:aloha 666
good 777
hello 100
    常用函数

    (1)find(key):返回键为key的映射的迭代器

    map mp ;
        mp["hello"] = 8 ;
        mp["hello"] = 100 ;
        mp["aloha"] = 666 ;
        mp["good"] = 777 ;
        map::iterator it = mp.find("good") ;
        cout << it->first << ' ' << it->second << endl ;
    输出结果:good 777
    

    (2)erase():删除单个元素和删除一个区间内的元素。

    map mp ;
        mp["hello"] = 8 ;
        mp["hello"] = 100 ;
        mp["aloha"] = 666 ;
        mp["good"] = 777 ;
        mp.erase(mp.find("good"));//也可以直接像这样写一个键mp.erase("good");
    map::iterator it = mp.begin();
    for(;it!=mp.end();it++)
        cout << it.first << ' ' << it.second << endl ;
    
    //删除一个区间的元素,这里只能用迭代器删除,erase(st,ed),表示删除[st,ed)区间内的元素。
    map mp ;
    mp["hello"] = 8 ;
    mp["hello"] = 100 ;
    mp["aloha"] = 666 ;
    mp["good"] = 777 ;
    mp.erase(mp.find("good"),mp.find("hello"));
    for(auto ele : mp){//写成iterator迭代器就可以
    cout << ele.first << ' ' << ele.second << endl ;
    }
    输出结果:aloha 666
    hello 100
    

    (3)size():用来获得map中映射的对数,时间复杂度O(1)。

    map mp ;
        mp["hello"] = 8 ;
        mp["hello"] = 100 ;
        mp["aloha"] = 666 ;
        mp["good"] = 777 ;
        cout << mp.size() << endl ;
    输出结果:3
    

    (4)clear():用来清空map中所有元素,复杂度为O(N),其中N为map中元素的个数。

    map mp ;
        mp["hello"] = 8 ;
        mp["hello"] = 100 ;
        mp["aloha"] = 666 ;
        mp["good"] = 777 ;
        mp.clear() ;
        cout << mp.size() << endl ; 
    输出结果:0
    
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/713988.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号