首页 > 编程语言 >c++STL

c++STL

时间:2022-11-18 01:44:17浏览次数:66  
标签:std map iterator STL c++ 哈希 mymap unordered

C++11常用特性的使用经验总结

std::unordered_map与std::map用法基本差不多,std::map使用的数据结构为二叉树,而std::unordered_map内部是哈希表的实现方式;

    // std::unordered_map与std::map用法基本差不多,但STL在内部实现上有很大不同,
    // std::map使用的数据结构为二叉树,而std::unordered_map内部是哈希表的实现方式,
    // 哈希map理论上查找效率为O(1)。但在存储效率上,哈希map需要增加哈希表的内存开销。
    std::unordered_map<std::string, std::string> mymap =
    {
        { "house","maison" },
        { "door","porte" },
        { "grapefruit","pamplemousse" }
    };
    // 1.统计长度
    // int n = mymap.bucket_count();
    int n = mymap.size();
    cout << "unordere_map length: " << n << endl;
    // 2.新建 k,v 对
    mymap["ooo"] = "aaa";
    // 3.遍历
    for(auto it = mymap.begin(); it != mymap.end(); it++){
        cout << it->first << ": " << it->second << endl;
    }
    // 4.移除 k,v 对
    // // 4.1 指定目标键值对位于 map 容器中的位置, // 其中,position 为迭代器,指向要删除的键值对。同时该方法会返回一个 iterator 迭代器,其指向的是删除键值对之后的那个键值对。
    // iterator erase (const_iterator position);

    // // 4.2 指定目标键值对的键
    // //删除 map 容器中键为 k 的键值对。由于 map 容器中每个键值对的键都是独一无二的,因此使用该语法格式的 erase() 方法,其返回值最大为 1。
    // size_type erase (const key_type& k);

    // // 4.3 删除 map 容器中位于 [first,last) 区域内的所有键值对
    // iterator erase (const_iterator first, const_iterator last);
    mymap.erase("ooo");

    // 5. 查找
    auto it = mymap.find("house");
    cout << it->first << " " << it->second << endl;      // house maison

 

 

https://iowiki.com/cpp_standard_library/cpp_unordered_set_find.html 

 

unordered_set 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

标签:std,map,iterator,STL,c++,哈希,mymap,unordered
From: https://www.cnblogs.com/zijidan/p/16901939.html

相关文章

  • C++图书资源管理系统
    C++图书资源管理系统题目3:图书资源管理实现一个简单的图书资源管理系统,管理维护已有图书资源,图书资源有不同的类型,有一般图书,杂志,电子资源等。不同资源有不同的属性和操......
  • C/C++自助攒机系统
    C/C++自助攒机系统管理员可以录入如下几种硬件的价格、型号信息:CPU:主频、品牌、价格、图片硬盘:容量、品牌、价格显示器:尺寸、品牌、价格内存:品牌、型号、价格机......
  • C++_内部链接与外部链接
    一.编译单元一个程序包括一个或多个编译单元。一个翻译单元由一个实现文件及其直接或间接包含的所有标头组成每一个Cpp文件即为一个编译单元单一定义规则”(ODR)在C......
  • 一些关于Python Class和C++ Class 的不同点
    写在前面本文将对PythonClass的用法进行讲解,且重点将体现PythonClass与C++Class不同的地方。类的定义和C++类似,Python采用了Classxxx的定义方式,不过首字母需要大写......
  • C++20实践入门 第6版 电子书 pdf
    关注公众号,回复【电子书】即可:  ......
  • C++20高级编程 第五版 电子书 pdf
    原作名:ProfessionalC++,FifthEdition 关注公众号,回复【电子书】即可: ......
  • windows--cmake与c++的使用教程(10)
    1概述本文基于前文环境本节目标:复用cmake脚本文件2编写复用脚本2.1前言多个项目之间,很多cmake设置大相径庭。比如修改输出路径、编写适用与自己的宏或者函数......
  • C++ 函数之占位参数
    voidfunc(inta,int){cout<<"占位参数"<<endl;}//占位参数之默认参数voidfunc2(inta,int=10){cout<<"占位默认参数"<<endl;}intmain()......
  • C++ 函数的形参之默认参数
    //如果某个位置参数有默认值,那么从这个位置往后,从左向右,必须都有默认值intfunc(inta,intb=10){returna+b;}//一个错误示范intfunc(inta,intb=10,in......
  • 【C++】如果你准备学习C++,并且有C语言的基础,我希望你能简单的过一遍知识点。
    相关视频——黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难_哔哩哔哩_bilibili(1-83)我的小站——半生瓜のblog我知道这个视频早已经被很多人学习并且记录​笔记,......