1.2.2.1 容器 Container

2024-06-04 10:58
文章标签 容器 1.2 2.1 container

本文主要是介绍1.2.2.1 容器 Container,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 1 容器
  • 2 序列式容器
    • 2.1 类模板 array
      • 2.1.1 内存空间固定大小
        • 2.1.1.1 设置元素值
        • 2.1.1.2 填充元素值
        • 2.1.1.3 读取元素值
        • 2.1.1.4 读取元素数量
    • 2.2 类模板 deque
    • 2.3 类模板 forward_list
    • 2.4 类模板 list
    • 2.5 类模板 vector
      • 2.5.1 内存空间动态大小
        • 2.1.1.1 设置元素值
        • 2.1.1.2 填充元素值
        • 2.1.1.3 读取元素值
        • 2.1.1.4 读取元素数量
  • 3 关联式容器
    • 3.1 类模板 map
    • 3.2 类模板 multimap
    • 3.3 类模板 set
    • 3.4 类模板 multiset
  • 4 无序关联式容器
    • 4.1 类模板 unordered_map
    • 4.2 类模板 unordered_multimap
    • 4.3 类模板 unordered_set
    • 4.4 类模板 unordered_multiset

1 容器

类别特点
STL序列式容器array、vector、deque、list 、forward_list.不会对存储的元素进行排序,元素排列的顺序取决于存储它们的顺序.
STL关联式容器map、multimap、set、 multiset关联式容器在存储元素时还会为每个元素在配备一个键,整体以键值对的方式存储到容器中。可以通过键值直接找到对应的元素,而无需遍历整个容器。另外,关联式容器在存储元素,默认会根据各元素键值的大小做升序排序。
STL无序关联式容器unordered_map、unordered_set、unordered_multimap、unordered_multiset无序关联式容器不会对存储的元素做升序排序.
大小是否固定元素存储位置
array是(无法动态的扩展或收缩)连续
vector否(可以动态的扩展或收缩)连续
deque
list否(可以动态的扩展或收缩)离散
forward_list否(可以动态的扩展或收缩)离散

2 序列式容器

2.1 类模板 array

2.1.1 内存空间固定大小

array<int, 10> scores; //定义10个整型元素的数组

2.1.1.1 设置元素值

scores.at(1) = 100; //设置元素1的值为100

2.1.1.2 填充元素值

scores.fill(100); //将数组所有元素初始化为100

2.1.1.3 读取元素值

int a = scores.at(1); //获取元素1的值

2.1.1.4 读取元素数量

int size = scores.size(); //获取元素数量

2.2 类模板 deque

2.3 类模板 forward_list

2.4 类模板 list

2.5 类模板 vector

2.5.1 内存空间动态大小

vector scores;
scores.resize(10);

2.1.1.1 设置元素值

scores.at(1) = 100; //设置元素1的值为100

2.1.1.2 填充元素值

scores.fill(100); //将所有元素初始化为100

2.1.1.3 读取元素值

int a = scores.at(1); //获取元素1的值

2.1.1.4 读取元素数量

int size = scores.size(); //获取元素数量

3 关联式容器

3.1 类模板 map

3.2 类模板 multimap

3.3 类模板 set

3.4 类模板 multiset

4 无序关联式容器

4.1 类模板 unordered_map

4.2 类模板 unordered_multimap

4.3 类模板 unordered_set

4.4 类模板 unordered_multiset

这篇关于1.2.2.1 容器 Container的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1029888

相关文章

如何将Tomcat容器替换为Jetty容器

《如何将Tomcat容器替换为Jetty容器》:本文主要介绍如何将Tomcat容器替换为Jetty容器问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat容器替换为Jetty容器修改Maven依赖配置文件调整(可选)重新构建和运行总结Tomcat容器替

C++从序列容器中删除元素的四种方法

《C++从序列容器中删除元素的四种方法》删除元素的方法在序列容器和关联容器之间是非常不同的,在序列容器中,vector和string是最常用的,但这里也会介绍deque和list以供全面了解,尽管在一... 目录一、简介二、移除给定位置的元素三、移除与某个值相等的元素3.1、序列容器vector、deque

C++常见容器获取头元素的方法大全

《C++常见容器获取头元素的方法大全》在C++编程中,容器是存储和管理数据集合的重要工具,不同的容器提供了不同的接口来访问和操作其中的元素,获取容器的头元素(即第一个元素)是常见的操作之一,本文将详细... 目录一、std::vector二、std::list三、std::deque四、std::forwa

Python容器类型之列表/字典/元组/集合方式

《Python容器类型之列表/字典/元组/集合方式》:本文主要介绍Python容器类型之列表/字典/元组/集合方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 列表(List) - 有序可变序列1.1 基本特性1.2 核心操作1.3 应用场景2. 字典(D

如何通过Golang的container/list实现LRU缓存算法

《如何通过Golang的container/list实现LRU缓存算法》文章介绍了Go语言中container/list包实现的双向链表,并探讨了如何使用链表实现LRU缓存,LRU缓存通过维护一个双向... 目录力扣:146. LRU 缓存主要结构 List 和 Element常用方法1. 初始化链表2.

Go语言中三种容器类型的数据结构详解

《Go语言中三种容器类型的数据结构详解》在Go语言中,有三种主要的容器类型用于存储和操作集合数据:本文主要介绍三者的使用与区别,感兴趣的小伙伴可以跟随小编一起学习一下... 目录基本概念1. 数组(Array)2. 切片(Slice)3. 映射(Map)对比总结注意事项基本概念在 Go 语言中,有三种主要

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

Spring核心思想之浅谈IoC容器与依赖倒置(DI)

《Spring核心思想之浅谈IoC容器与依赖倒置(DI)》文章介绍了Spring的IoC和DI机制,以及MyBatis的动态代理,通过注解和反射,Spring能够自动管理对象的创建和依赖注入,而MyB... 目录一、控制反转 IoC二、依赖倒置 DI1. 详细概念2. Spring 中 DI 的实现原理三、

usaco 1.2 Palindromic Squares(进制转化)

考察进制转化 注意一些细节就可以了 直接上代码: /*ID: who jayLANG: C++TASK: palsquare*/#include<stdio.h>int x[20],xlen,y[20],ylen,B;void change(int n){int m;m=n;xlen=0;while(m){x[++xlen]=m%B;m/=B;}m=n*n;ylen=0;whi

usaco 1.2 Name That Number(数字字母转化)

巧妙的利用code[b[0]-'A'] 将字符ABC...Z转换为数字 需要注意的是重新开一个数组 c [ ] 存储字符串 应人为的在末尾附上 ‘ \ 0 ’ 详见代码: /*ID: who jayLANG: C++TASK: namenum*/#include<stdio.h>#include<string.h>int main(){FILE *fin = fopen (