es6set和map区别_list和map的区别面试

es6set和map区别_list和map的区别面试转自https://blog.csdn.net/terence1212/article/details/52487656set是一种关联式容器,其特性如下:set以RBTree作为底层容器所得元素的只有key没有value,value就是key不允许出现键值重复所有的元素都会被自动排序不能通过迭代器来改变set的值,因为set的值就是键map和set一样是关联式容器,它们的底层容器都是红黑树,区别…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

转自https://blog.csdn.net/terence1212/article/details/52487656

set是一种关联式容器,其特性如下:

  • set以RBTree作为底层容器
  • 所得元素的只有key没有value,value就是key
  • 不允许出现键值重复
  • 所有的元素都会被自动排序
  • 不能通过迭代器来改变set的值,因为set的值就是键

map和set一样是关联式容器,它们的底层容器都是红黑树,区别就在于map的值不作为键,键和值是分开的。它的特性如下:

  • map以RBTree作为底层容器
  • 所有元素都是键+值存在
  • 不允许键重复
  • 所有元素是通过键进行自动排序的
  • map的键是不能修改的,但是其键对应的值是可以修改的

关于自动排序,写一个c++ 程序验证一下

#include <iostream>
#include <set>
#include <map>
#include <string>

using namespace std;
int main()
{
    int numList[6]={1,4,2,5,6,0};


    //1.set add
    set<int> numSet;
    for(int i=0;i<6;i++)
    {
        //2.1insert into set
        numSet.insert(numList[i]);
    }
    //2.travese set
    for(set<int>::iterator it=numSet.begin() ;it!=numSet.end();it++)
    {
        cout<<*it<<" occurs "<<endl;
    }

    map<int,string> mapStudent;
    mapStudent[4] =  "student_one";
    mapStudent[1] =  "student_two";
    mapStudent[3] =  "student_three";
     map<int, string>::iterator   iter;
     for(iter = mapStudent.begin(); iter != mapStudent.end(); iter++){
          cout<<iter->first<<" "<<iter->second<<endl;
     }

    return 0;
}

结果如下:

es6set和map区别_list和map的区别面试

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/196241.html原文链接:https://javaforall.net

(0)
上一篇 2025年9月30日 下午8:43
下一篇 2025年9月30日 下午9:22


相关推荐

  • 已解决:导入tensorflow报错: ImportError: DLL load failed: 动态链接库(DLL)初始化例程失败。终于解决

    已解决:导入tensorflow报错: ImportError: DLL load failed: 动态链接库(DLL)初始化例程失败。终于解决一 问题来源环境 win10Anacond 07 20 虚拟环境 tf2nlp python3 7 问题来源 由于用了公司的笔记本 所以需要给那个笔记本装环境 装了 Anaconda 创建了虚拟环境 tf2nlp 进入虚拟环境 安装 pipinstallte 2 0 启动 python 导入 tensorflow 时 出现了以下报错 然后我根据报错提示 去微软官网下载 VC redist x64 exe 进行安装 然而报错还是一样 网上的相关文章都是说要降低 tf 的版本 然而

    2026年3月26日
    10
  • 手把手教你制作机房三维场景(3D效果图)

    手把手教你制作机房三维场景(3D效果图)前言:随着信息技术的不断发展,大量数据中心机房的建设、监控软件已经成为机房管理者的重要武器,特别是机房效果图这一块,从简易的CAD到现在的3D效果图,从静态到三维动态的改进,机房监控软件基本上可以说是从无到有的一个过程,下面本文跟大家分享机房高大上的数据中心三维可视化管理软件的三维场景制作过程(俗称:3D效果图的制作过程)。以前的机房效果图现在的机房3D效果图数据中心可三维可视化管理软件,通过对现

    2022年6月2日
    152
  • 设计模式概述 以及 23种设计模式的介绍

    设计模式概述 以及 23种设计模式的介绍设计模式概述 Designpatter 设计模式 代表了最佳的实践 通常被有经验的面向对象的软件开发人员所采用 设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案 这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的 设计模式是一套被反复使用的 多数人知晓的 经过分类编目的 代码设计经验的总结 使用设计模式是为了重用代码 让代码更容易被他人理解 保证代码可

    2026年3月16日
    2
  • 用原子操作实现无锁编程[通俗易懂]

    用原子操作实现无锁编程[通俗易懂]假设我们要维护一个全局的线程安全的int类型变量count,下面这两行代码都是很危险的:count++;count+=n;我们知道,高级语言中的一条语句,并不是一个原子操作.比如一个最简单的自增操作就分为三步: 1.从缓存取到寄存器2.在寄存器加13.存入缓存。多个线程访问同一块内存时,需要加锁来保证访问操作是互斥的. 所以,我

    2022年5月27日
    51
  • MATLAB 数组合并

    MATLAB 数组合并原数组 data 1 227 2476 1 99 data 2 250 3928 2 26 data 3 265 9431 3 65 data 4 465 7217 3 16 pixel num 15169 data all 1 227 pixel num 24 90 data all 2 250 pixel num 24 52 data all 3 265 pixel num 24 58 data all 4

    2026年3月18日
    2
  • vld 使用

    vld 使用http vld codeplex com documentatio 最近发现用 vs2013 vld 的版本是 2 3 发现 nbsp 检测不了 Visual nbsp Leak nbsp Detector nbsp Version nbsp 2 3 nbsp installed No nbsp memory nbsp leaks nbsp detected Visual nbsp Leak nbsp Detector nbsp is nbsp now nbsp exiting 网上也已经证实了这个 bug 于

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号