当前位置: 首页 > news >正文

C++ - 了解STL的数据容器

CSP考试用的STL内容也越来越多了,我们有必要详细了解一下。

常用容器

  • array 静态数组(大小固定,)
  • vector 矢量(动态数组,大小可变)
  • string 字符串
  • stack 栈
  • queue 队列
  • set 集合
  • map 键值对

array 静态数组

array是固定大小的序列容器,array中包含特定个数并且严格按照线性序列排序的元素。因此array允许对元素进行随机访问,指向某一元素的指针可以通过偏移访问其他元素。在array内部,它只保存自己包含的元素,其他任何信息都不保存,包括自身的大小。

说白了其实array跟我们平时用的int a[100]没啥区别。

但是array又有其好用的地方,我们这里只做了解,防止初赛出现这玩意儿。

本节内容大量引用博客:112.STL中的array ,但去掉了大部分不需要了解的内容。感兴趣的同学可以去看原文

array定义和初始化

定义array的常用方式如下所示:

array<int, 5> a;
array<int, 5> b = {1, 2, 3, 4, 5};
array<int, 5> c {{1, 2, 3, 4, 5}};//注意,不加等号的时候是双括号

通过下标访问

通过中括号和at都可以。不过array推荐使用at访问,因为使用[],array不给报错,你就没办法排查问题了。

cout<<a[0]<<endl;//不报错,给随机值
cout<<b[1]<<endl;
cout<<c[6]<<endl;//不报错,给随机值
cout<<c.at(7)<<endl;//报错

image

fill填充

这可能是array最令人喜欢的功能了。作用很简单,把数组都填充为某个数值。

a.fill(100);cout<<a[3];

数组的大小size

size获取数组大小,比sizeof好使

image

其他功能

请参考博客:112.STL中的array

vector 动态数组

定义和初始化

vector<int> a;		//创建一个空数组vector<int> b(100);	//创建100个元素大小的数组vector<char> c(10,'a');//创建一个10个元素的数组,元素都是avector<int> d{1,2};//创建一个2个元素的数组,元素是1和2

注意上面的小括号和大括号的区别!!!

访问数组元素 [] at

同样可以用[]和at。

数组大小 size()

数组是不是空 empty()

重置数组大小 reserve()

reserve 改变当前vecotr所分配空间的大小

添加元素到最后 push_back()

删除最后的元素 pop_back()

删除某个元素 erase(i)

erase() 函数在删除元素时,会将删除位置后续的元素陆续前移,并将容器的大小减 1。

清空 clear()

http://www.hskmm.com/?act=detail&tid=2418

相关文章:

  • 收费详情
  • bluetoothctl UUIDs
  • ANOLIS8安装配置ldap账号登录
  • 实用指南:小程序非主页面的数据动作关联主页面的数据刷新操作
  • 【光照】[光照模型]是什么?以UnityURP为例
  • 从知识管理困境到高效协同:Gitee Wiki如何重塑研发团队的知识体系
  • PHP数组去重和集合有什么关系
  • kkFileView4.4.0 安装与使用
  • ubuntu22挂载windows server2019的共享文件夹
  • PHP数组去重适用于哪些场景
  • 下载视频
  • 常用Linux配置
  • m1max可以装windows系统很卡吗
  • 1 | 移动语义:浅拷贝,深拷贝和引用拷贝,左值和右值
  • macbook air和windows系统区别
  • Gitee:国产代码托管的领军者,助力企业应对CODING停服挑战
  • 锂电池外围均衡电路仿真
  • Wireshark 学习笔记(一)
  • ELF 文件结构与加载流程介绍
  • 灵码产品演示:Maven 示例工程生成
  • NocoBase 本周更新汇总:优化及缺陷修复
  • CF1265E题解
  • 数组中的第K大元素
  • Gitee:本土开发者生态的崛起与数字化转型新范式
  • 从本土化优势到全场景覆盖:Gitee如何重塑中国开发者的DevOps体验
  • 【2025-09-11】脆弱的睡眠
  • 正则表达式基础
  • 即时通讯管理平台(后台管理)介绍文档
  • HC32F460串口重定向printf
  • 一个我很喜欢的故事