精华内容
下载资源
问答
  • 常用容器

    2014-09-27 11:58:08
    容器基本上可以分为两大类,序列式容器和关联式容器。 1. 序列式容器 所谓序列式容器,就是说容器中的元素都可序(Ordered),但未排序(Sorted)。 序列式容器包括:Vector、List、Queue、Stack等。 2. 关联式容器: ...
    容器基本上可以分为两大类,序列式容器和关联式容器。

    1. 序列式容器
    所谓序列式容器,就是说容器中的元素都可序(Ordered),但未排序(Sorted)。

    序列式容器包括:Vector、List、Queue、Stack等。

    说明:

    (1)vector
    声明之后里面没有元素,此时不能使用数组下标访问元素,调用push_back会申请内存并存储数据。


    2. 关联式容器:
    所谓关联式容器,观念上类似关联式数据库(实际上简单的多):每个元素都有一个键值(Key)和一个实值(Value)。当元素被插入到关联式容器中时,容器内部结构便依照其键值的大小,以某种特定规则将这个元素放置于特定的位置。关联式容器没有所谓的头尾,所以不会有push_back()、push_front()、pop_back()、pop_front()这样的操作。
    关联式容器分为两大类:Map和Set以及他们的衍生容器MultiMap和MultiSet。他们的底层实现都是红黑树(RB-Tree),因为红黑树提供了很好的搜索效率。
    展开全文
  • STL常用容器详细解析

    2020-09-05 00:24:25
    里我们不涉及容器的基本操作之类,只是要讨论一下各个容器其各自的特点STL中的常用容器包括:顺序性容器(vector、deque、list)、关联容器(map、set)、容器适配器(queue、stac)
  • JAVA 常用容器

    2018-06-19 17:51:01
    常用容器 JComponent是Container的子类,因此JComponent子类创建的组件也都是容器,但我们很少将JButton、JTextFied. JCheckBox等组件当容器来使用。JComponent专门提供了一些经常用来添加组件的容器。相对于JFrame...

    常用容器

          JComponent是Container的子类,因此JComponent子类创建的组件也都是容器,但我们很少将JButton、JTextFied. JCheckBox等组件当容器来使用。JComponent专门提供了一些经常用来添加组件的容器。相对于JFrame底层容器,本节提到的容器被习惯地称为中间容器,中间容器必须被添加到底层容器中才能发挥作用。

    1、JPanel 面板

          经常使用JPanel创建一个面板,再向这个面板添加组件,然后把这个面板添加到其他容器中。JPanel 面板的默认布局是FlowLayout布局。

    2、JTabbedPane选项卡窗格

          可以使用JTabbedPane容器作为中间容器。当用户向JTabbedPane容器添加一个组件时,JTabbedPane容器就会自动为该组件指定一个对应的选项卡,即让个选项卡对应一个组件。各个选项卡对应的组件层叠式放入JTabbedPane容器,当用户单击选项卡时,JTabbedPane容希器将显示该选项卡对应的组件。选项卡默认在JTabbedPane容器的顶部,从左向右依次排列。JTabbedPane容器可以使用

          add(String text, Component c);

    方法将组件c添加到JTabbedPane容器中,并指定和组件c对应的选项卡的文本提示是text。

    可以使用构造方法

          public JTabbedPane (int tabPlacement)

          创建JTabbedPane容器,选项卡的位置由参数tabPlacement 指定,该参数的有效值为JTabbedPane.TOP、JTtabbedPane BOTTOM、JTabbedPane.LEFT 和JTabbedPane.RIGHT.

    3、滚动窗格JScrollPane

          滚动窗格只可以添加一个组件,可以把-个组件放到一个滚动窗格中,然后通过滚动条来观看该组件。JTextArea 不自带滚动条,因此就需要把文本区放到一个滚动窗格中。例如:

          JScrollPane scroll=new JScrollPane (new JTextArea());

    4、拆分窗格JSplitPane

          顾名思义,拆分窗格就是被分成两部分的容器。拆分窗格有两种类型:水平拆分和垂直拆分。水平拆分窗格用一条拆分线把窗格分成左右两部分,左面放一个组件,右面放一个组件,拆分线可以水平移动。垂直拆分窗格用条拆分线把窗格分成上下两部分,上面放一个组件,下面放一个组件,拆分线可以垂直移动。

    JSplitPane的两个常用的构造方法如下:

          JSplitPane(int a, Component b, Component c)

          参数a取JSplitPane的静态常量HORIZONTAL_SPLIT或VERTICAL_SPLIT,以决定是水平还是垂直拆分。后两个参数决定要放置的组件。

          JSplitPane (inta,boolean b,Component c, Component d)

          参数a取JpliPane的静态常量HORIZONTAL_SPLIT或VERTICAL_SPLIT,以决定是水平还是垂直拆分,参数b决定当拆分线移动时,组件是否连续变化(true是连续)。

    5、JLayeredPane分层窗格

          如果添加到容器中的组件经常需要处理重叠问题,就可以考虑将组件添加到分层窗格。分层窗格分成5个层,分层窗格使用

          add (Jcomponent com, int layer);

        添加组件com,并指定com所在的层,其中参数layer的取值为JLayeredPane类中的类常量:DEFAULT_LAYER、PALETTE_LAYER、MODAL_LAYER、POPUP_LAYER、DRAG_LAYER。

          DEFAULT_LAYER层是最底层,添加到DEFAULT_LAYER层的组件如果和其他层的组件发生重叠时,将被其他组件遮挡。DRAG_ LAYER层是最上面的层,如果分层窗格中添加了许多组件,当用户用鼠标移动一组件时,可以把该组件放到DRAG_LAYER层,这样,用户在移动组件的过程中,该组件就不会被其他组件遮挡。添加到同层上的组件,如果发生重叠,后添加的会遮挡先添加的组件。分层窗格调用public void setLayer(Component c,int lay)可以重新设置组件c所在的层,调用public int getLayer(Component C)可以获取组件c所在的层数。

    展开全文
  • C++常用容器介绍

    2020-12-02 16:00:41
    贴一个c++常用容器的简介 链接 hashmap unordered_map 以备查阅

    贴一个c++常用容器的简介
    链接
    hashmap
    unordered_map
    以备查阅

    展开全文
  • 里我们不涉及容器的基本操作之类,只是要讨论一下各个容器其各自的特点。STL中的常用容器包括:顺序性容器(vector、deque、list)、关联容器(map、set)、容器适配器(queue、stac)
  • STL常用容器

    2016-04-20 10:23:21
    STL是C/C++开发中一个非常重要的模板,而其中...STL中的常用容器包括:顺序性容器(vector、deque、list)、关联容器(map、set)、容器适配器(queue、stac)。 1、顺序性容器 (1)vector  vector是一种动态数组

    STL是C/C++开发中一个非常重要的模板,而其中定义的各种容器也是非常方便我们大家使用。下面,我们就浅谈某些常用的容器。这里我们不涉及容器的基本操作之类,只是要讨论一下各个容器其各自的特点。STL中的常用容器包括:顺序性容器(vector、deque、list)、关联容器(map、set)、容器适配器(queue、stac)。

    1、顺序性容器
    (1)vector
      vector是一种动态数组,在内存中具有连续的存储空间支持快速随机访问。由于具有连续的存储空间,所以在插入和删除操作方面,效率比较慢。vector有多个构造函数,默认的构造函数是构造一个初始长度为0的内存空间,且分配的内存空间是以2的倍数动态增长的,即内存空间增长是按照20,21,22,23…..增长的,在push_back的过程中,若发现分配的内存空间不足,则重新分配一段连续的内存空间,其大小是现在连续空间的2倍,再将原先空间中的元素复制到新的空间中,性能消耗比较大,尤其是当元素是非内部数据时(非内部数据往往构造及拷贝构造函数相当复杂)。vector的另一个常见的问题就是clear操作。clear函数只是把vector的size清为零,但vector中的元素在内存中并没有消除,所以在使用vector的过程中会发现内存消耗会越来越多,导致内存泄露,现在经常用的方法是swap函数来进行解决: vector V;
        V.push_back(1); V.push_back(2);V.push_back(1); V.push_back(2);
        vector().swap(V); 或者 V.swap(vector());
      利用swap函数,和临时对象交换,使V对象的内存为临时对象的内存,而临时对象的内存为V对象的内存。交换以后,临时对象消失,释放内存。
      
    (2)deque
      deque和vector类似,支持快速随机访问。二者最大的区别在于,vector只能在末端插入数据,而deque支持双端插入数据。deque的内存空间分布是小片的连续,小片间用链表相连,实际上内部有一个map的指针。deque空间的重新分配要比vector快,重新分配空间后,原有的元素是不需要拷贝的。

    (3)list
      list是一个双向链表,因此它的内存空间是可以不连续的,通过指针来进行数据的访问,这使list的随机存储变得非常低效,因此list没有提供[]操作符的重载。但list可以很好地支持任意地方的插入和删除,只需移动相应的指针即可

    (4)容器选择:
    在实际使用时,如何选择这三个容器中哪一个,应根据你的需要而定,一般应遵循下面的原则:
      1) 如果你需要高效的随即存取,而不在乎插入和删除的效率,使用vector
      2) 如果你需要大量的插入和删除,而不关心随即存取,则应使用list
      3) 如果你需要随即存取,而且关心两端数据的插入和删除,则应使用deque
      
    2、关联容器
    (1)map
      map是一种关联容器,该容器用唯一的关键字来映射相应的值,即具有key-value功能。map内部自建一棵红黑树(一种自平衡二叉树),这棵树具有数据自动排序的功能,所以在map内部所有的数据都是有序的,以二叉树的形式进行组织。map是关键字和值的集合,可以将人命作为关键字,将其电话号码作为值,称这种数据结构为“将名字映射到电话号码”。给定一个名字到电话号码的map,我们可以使用一个人的名字作为下标来获取此人的电话号码。
    (2)set
      set也是一种关联性容器,它同map一样,底层使用红黑树实现,插入删除操作时仅仅移动指针即可,不涉及内存的移动和拷贝,所以效率比较高。set中的元素都是唯一的,而且默认情况下会对元素进行升序排列。所以在set中,不能直接改变元素值,因为那样会打乱原本正确的顺序,要改变元素值必须先删除旧元素,再插入新元素。不提供直接存取元素的任何操作函数,只能通过迭代器进行间接存取。

    3、容器适配器

    展开全文
  • STL常用容器解析

    2020-04-04 15:00:38
    STL容器 stl提供了大量成熟的容器供我们存储数据,在连接各自容器的特点的情况下,选择性的使用最合适的容器,会使代码质量与性能大大提升,下面记录下各自常用容器的特性: 1. std::vector ...
  • 容器图像 常用容器映像的Dockerfile :包含工具的图像。
  • java 有哪些常用容器(集合)?

    万次阅读 多人点赞 2019-04-29 10:52:47
    java 有哪些常用容器(集合)? java 容器都有哪些? Collection | ├AbstractCollection 对Collection接口的最小化抽象实现 | │ | ├List 有序集合 | │-├AbstractList 有序集合的最小化抽象实现 | │...
  • Docker 常用容器快速部署。 文章目录Docker 常用容器快速部署。Docker 部署 FastDFS。拉取镜像。创建 Docker 容器。创建 Storage 容器。进入 storage 容器,到 storage 的配置文件中配置 HTTP 访问的端口。配置文件...
  • 本篇博文主要是通过解析HashMap、ConcurrentHashMap、TreeMap、Hashtable、LinkedHashMap、HashSet、TreeSet 、ArrayList、Vector、LinkedList、BitSet、Pair等常用容器的底层结构来分析各种容器的特点、用途以及...
  • STL常用容器之 stack,queue 文章目录STL常用容器之 stack,queue1. stack容器1. stack基本概念2. stack常用接口2. queue容器1. queue基本概念2. queue常用接口 1. stack容器 1. stack基本概念 概念:stack是一种先进...
  • STL常用容器浅谈

    2016-04-27 10:17:48
    STL常用容器浅谈  STL是C/C++开发中一个非常重要的模板,而其中定义的各种容器也是非常方便我们大家使用。下面,我们就浅谈某些常用的容器。这里我们不涉及容器的基本操作之类,只是要讨论一下各个容器其各自的...
  • STL常用容器内部实现

    2017-12-10 14:33:42
    STL常用容器浅谈  STL是C/C++开发中一个非常重要的模板,而其中定义的各种容器也是非常方便我们大家使用。下面,我们就浅谈某些常用的容器。这里我们不涉及容器的基本操作之类,只是要讨论一下各个容器...
  • STL7个常用容器的比较

    2020-03-27 00:05:40
    详见STL7个常用容器的比较
  • C++ 常用容器成员函数用法总结 C++ 常用容器成员函数用法总结简介迭代器简介array: 静态数组简介构造函数访问 / 赋值迭代器下标 / at批量赋值swap (交换函数)常用函数长度/空间/容量相关函数string:字符串简介构造...
  • Java常用容器比较分析

    千次阅读 2015-04-24 14:02:59
    Java常用容器比较分析
  • c++STL常用容器之List容器——全面总结(附案例解析)(十六) 但是怎么合并两个链表呢: 函数:splice() 看一个案例 合并两个有序增长链表并倒序输出: 有List L1包括1,3,6,9 有List L2包括2,4,5,12,19 合并...
  • STL常用容器对比

    千次阅读 2016-08-13 22:50:34
    STL的常用容器大致有以下8个: 1.vector  vector是一种动态数组,在内存中具有连续的存储空间,支持快速随机访问。由于具有连续的存储空间,所以在插入和删除操作方面,效率比较慢。vector有多个构造函数,默认的...
  • STL中的常用容器介绍

    2017-05-31 21:26:03
    STL中的常用容器包括:顺序性容器(vector、deque、list)、关联容器(map、set)、容器适配器(queue、stac) STL是C/C++开发中一个非常重要的模板,而其中定义的各种容器也是非常方便我们大家使用。下面,...
  • 关于STL的常用容器以及算法的总结 主要对https://blog.csdn.net/u013846293/article/details/79410293 以及https://blog.csdn.net/xyqqwer/article/details/81263060 作者所述,做了一波搬运以及全面总结。方便于...
  • Qt 常用容器

    2016-06-02 17:24:00
    主要说Qt的以下几种容器 ...和一些常用容器方法的使用 qSort qCopy qFind 1.QList泛型集合是最常用的一种容器 看一下它的常用 操作 添加删除和两个迭代器 QListIterator和QMutableListIterator #include #in
  • 1. 常用命令 查询版本信息:>> docker --version >> docker-machine --version >> docker-compose --version 查看环境信息:>...2. 常用容器 hello-world>> docker run hello
  • Java基础——GUI——Swing中常用容器和组件

    千次阅读 多人点赞 2019-06-20 09:56:08
    1.swing中常用容器 (1)JFrame 常用方法: 1.构造方法: 2.设置窗体可见: 3.设置点击窗体的执行的操作:. 4.设置窗体的大小和位置 等价于上面两个方法 不管窗体多大,窗体运行起来都会出现在...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,494
精华内容 11,397
关键字:

常用容器