首页 > 其他分享 >容器

容器

时间:2023-08-24 20:24:25浏览次数:31  
标签:容器 set 迭代 deque vector multiset 指针

  • vector 容器的增长是当容量不够时,就找到一块二倍大的空间,将原来的内容复制到新空间。每一次复制伴有大量的拷贝构造和析构函数的调用,开销大。vector 里面有 begin end end_of_storge 三个迭代器(指针)
  • list本质是一个双向链表,list类模版里面含有迭代器,list的迭代器里含有一根指针。
  • deque双端队列的实现是 多段式存储 ,模拟连续存储。deque有一个vector控制中心,控制中心里含有指向各个buffer的指针,deque含有首尾两个迭代器。控制中心的增长同 vector。deque的iterator含四根指针,一根指向控制中心该元素的位置的节点,指向该buffer的first,last,和指向当前buffer当前位置的cur指针。 deque的插入:插入的位置靠近尾部,就将尾部的位置后移,靠近首部,就将首部的位置前移。
  •  

  • queue 和 stack 中内含一个deque,用deque做底层支持,对queue和stack的动作就是对queue做动作。stack和 queue没有迭代器。
  • 容器rb_tree 类(红黑树)。红黑树提供了迭代器和遍历操作。rb_tree 为set和map做底层支持。
  • set/multiset 以红黑树为底层结构,set/multiset 元素的value和key合一。set/multiset 禁止用iterator修改元素值。multiset允许重复key。map/multimap 以红黑树做底层结构。map/multimap 可以改变value。multimap 允许key重复。
  • hash_table,类似于vector<list>,当数据个数超过bucket的个数时,就需要rehash,rehash的代价是巨大的,需要扩容vector,重新放置元素(成长的代价是痛苦的)。hash函数有很多特化版本。hash_table的iterator有指向vector的指针和指向当前bucket的指针两根指针。
  • unorder_set unorder_multiset unorder_map unorder_multimap 以hash_table为底层结构。      l

标签:容器,set,迭代,deque,vector,multiset,指针
From: https://www.cnblogs.com/wuyun--wy/p/17202497.html

相关文章

  • IOC容器
    namespaceFeng.FramWorkDesign{publicclassIOCContainer{privateDictionary<Type,object>mInstance=newDictionary<Type,object>();publicvoidRegister<T>(Tinstance){varkey=typeof(T);......
  • 如何让公司其他项目组的传统部署迁移到容器部署
    准备好容器环境组织项目方、开发、测试、运维进行容器相关培训评估应用上云的必要性,可行性和风险,综合决定是否上云及哪些部分上云。选择新项目以容器方式部署,新项目稳定后,在对老项目进行推广选择非核心无状态的业务服务优先实践CI/CD流水线相关改造情况一:应用不做任何改......
  • 【问题解决】容器部署MySQL的数据在docker commit导出的镜像中丢失
    问题起因最近公司有个甲方项目参加竞赛,要求在(基于kubeflow/arena)平台上部置应用,可以将MySQL打包在应用一起,也可以分开部署,没有提供volume相关的支持。大意是可以把初始好的数据直接拿到平台上。经过本人在Linux虚机中启动MySQL容器导入数据再dockercommit出镜像部署到平台......
  • Docker开启和关闭容器自启动
    启动容器增加–-restart=always参数设置自启动dockerrun--restart=always--nametest--net=host-dtest//test为镜像河容器名称已启动的容器设置自启动dockerupdate–-restart=always容器ID或者容器名称已启动的容器关闭自启动dockerupdate--restart=no容器ID或者容......
  • Docker的inspect命令查看容器详细信息--九五小庞
    很久之前建的一个容器,今天发现找不到端口信息了。。。这都是小问题,执行dockerinspect命令可以查看容器的详细信息,推荐!不用进入容器内部,命令格式为:dockerinspect[想要查看信息的容器id或者容器名字]运行这个命令会返回一个json字符串,显示这个docker容器的全部内容。—————......
  • Java 常见并发容器总结
    Java常见并发容器总结​ JDK提供的这些容器大部分在java.util.concurrent包中。ConcurrentHashMap:线程安全的HashMapCopyOnWriteArrayList:线程安全的List,在读多写少的场合性能非常好,远远好于Vector。ConcurrentLinkedQueue:高效的并发队列,使用链表实现。可以......
  • docker上建一个jenkins容器 连gitee上代码 当更改代码后,浏览器页面更新
    1.dockerpulljenkinszh/jenkins-zh  2.设置端口  3访问本机的浏览器 跳转 4在cmd窗口输入命令 找到密码,输入,点击继续按钮 5下载默认推荐的插件 6填写账号和密码必须写自己设置的容器的账号和密码 7.  8进入主页面 9插件管理点击......
  • Kubernetes、Docker Swarm和Rancher的特点 - 容器编排平台比较
    本文将介绍三种流行的容器编排平台:Kubernetes、DockerSwarm和Rancher。我们将比较它们的特点,包括架构、功能、性能和生态系统。通过了解这些平台的优势和劣势,读者可以更好地选择适合自己需求的容器编排平台。引言随着容器技术的快速发展,容器编排平台的需求也日益增长。容器编排......
  • k3s 容器集群
    *参考*https://docs.k3s.io/architecturehttps://ithelp.ithome.com.tw/users/20121071/ironman/2820?page=1https://www.fullstaq.com/knowledge-hub/blogs/setting-up-your-own-k3s-home-clusterK3SasKubernetesdistributionMetalLBasloadbalancerRancherasc......
  • 将.NET应用程序容器化与Docker
    当谈到现代软件开发和部署方法时,Docker已经成为一个备受欢迎的工具。它为开发人员和运维团队提供了一种简单而有效的方法,将应用程序及其依赖项打包到一个称为容器的独立单元中。在本篇博客中,我们将探讨如何将.NET应用程序容器化使用Docker。什么是Docker?Docker是一种容器化平......