STL-容器库101--array【C11】
1. 原型
C11提供
template < class T, size_t N > class array; T: 元素类型,以 array::value_type 作为别名使用;N: array中元素大小;
- 固定size的序列容器;
- 初始化时, array对象不保存任何数据,除了编译时期的行为对“元素”参数的编译器初始化值
- 和普通的数组一样,从[]访问
- array仅仅为数组封装了一层成员函数和全局函数,以作为标准容器使用
- array固定容器大小,不能扩展容量;
- 0大小的array是有效的,但是不能访问数据。
- STL 中的swap操作是非常低效率的操作;
- array容器能够作为tuple对象(元组对象)使用。 头文件<array>中重载了get函数来获取array中的元素值。
使用头文件: #include <array>
1.1 成员类型:
array中的成员类型作为一些参数、或者返回值类型的别名使用,下面的是别面以及定义:
- value_type:模板参数T
- reference: value_type&
- const_reference: const value_type&;
- pointer: value_type*
- const_pointer: const value_type*;
- iterator: 随机指向value_type的迭代器
- const_iterator: 指向const value_type类型的迭代器
- reverse_iterator:
- const_reverse_iterator:
- size_type: size_t(无符号整数 unsign int)
- difference_type: ptrdiff_t(符号整形 int)
1.2 成员函数
(1)Iterators
Array::begin:
Array::end:
Array::rbegin:
Array::rend;
Array::cbegin
Array::cend;
Array::crbegin
Array::crend;
(2)Capacity
Array:: size(): 元素数量
Array::max_size():最大容量
Array::expty(): 测试是否为空
(3)Element access
Array:: operator[]:
- 返回参数n位置的reference,注意,第一个元素位置为0;
- 与 成员函数at()具有相同的行为, 但是array::at()是会检查参数n是否越界,以及如果越界则抛出异常信号
- 如果是const的array,则返回const_reference,否则返回reference
- 注意:refenerence的样式是类型array内的别名定义。
reference at ( size_type n );
const_reference at ( size_type n ) const;
- 返回参数n位置的reference。自定检测n是否位于有效的范围内。并抛出out_of_rance 异常。如果n 大于size或者等于size
Array::front();
- 返回第一个元素的reference
- Calling this function on an empty container causes undefined behavior.
Array::back();
- 返回最后一个元素的reference, 不像array::end()返回的是iterator
- Calling this function on an empty container causes undefined behavior.
Array::data();
- 返回pointer类型指向第一个元素;
- 因为array类型是连续内存分配,因此可以对pointer进行任何偏置访问相应位置数据;
(4)Modifiers
void Array::fill(const value_type& val):
- 对数组中的所有元素设置参数值
void Array::swap(array& x):
- 交换内容,两个对象具有相同的size;
- 调用之后,两个对象互相交换内容;
1.3 非成员函数重载
get(array)
返回array 中的第i个元素属性引用。
relational operators(array)
1.4 非成员 类的声明
(1)tuple_element<array>
(2)tuple_size<array>
转载于:https://www.cnblogs.com/icmzn/p/8642704.html
STL-容器库101--array【C11】相关推荐
- 简洁明了——STL容器库之set头文件常用函数集合
简介: 1.同vector封装数组,list封装链表一样,set和map封装了二叉树(红黑树,性能优于平衡二叉树) 2.有序且去重 3.插入.删除.查找效率高(二叉树) 4.插入or删除后迭代器仍有效 ...
- C++ 笔记(19)— 标准模板库(STL容器、STL迭代器、STL算法、STL容器特点、STL字符串类)
C++ 标准库可以分为两部分: 标准函数库: 这个库是由通用的.独立的.不属于任何类的函数组成的.函数库继承自 C 语言. 面向对象类库: 这个库是类及其相关函数的集合. C++ 标准库包含了所有的 ...
- C++ STL容器——序列式容器(array、vector、deque、list)
概述 1.C++ STL的容器分为三种,序列式容器,关联式容器,无序式容器,这里先说说常用的序列式容器. 2.array,vector,deque,list,forward_list这几种都是序列式容 ...
- STL标准库-容器-set与map
STL标准库-容器-set与multiset C++的set https://www.cnblogs.com/LearningTheLoad/p/7456024.html STL标准库-容器-map和 ...
- STL容器系列文章:array容器
1. 头文件 #include <array> 2. 定义 C11中引入,静态数组,序列式容器.array可以看做普通数组添加了成员函数,使得数组能够被当成标准容器来使用.容器的大小固定, ...
- C++ 标准模板库 STL 容器适配器
C++ 标准模板库 STL 容器适配器 容器 数据结构 时间复杂度 顺序性 重复性 stack deque / list 顶部插入.顶部删除 O(1) 无序 可重复 queue deque / lis ...
- C++ STL容器 —— array 用法详解
C++ STL容器 -- array 用法详解 写在前面:近期正在学习C++的STL容器,因此在这里做一下日志记录,主要介绍一些容器基本成员函数的用法, 配上实际用例,并不涉及原理.但别人的博客终究是 ...
- STL标准库及泛型编程
1-认识headers.版本.重要资源 C++ Standard Library Standard Template Library 标准库 > STL 标准库以header files形式呈现 ...
- C++拾取——使用stl标准库实现排序算法及评测
今天看了一篇文章,讲各种语言的优势和劣势.其中一个观点:haskell非常适合写算法,因为使用者不用去关心具体的计算机实现,而只要关注于操作语义.这让它在专心研究算法的人中非常受欢迎.所以很多时候,语 ...
- 【小白学习C++ 教程】二十一、C++ 中的STL容器Arrays和vector
@Author:Runsen C++的标准模板库(STL)是提供数组.向量.队列等数据结构的模板类的集合.STL是由容器.算法.迭代器组成的库. 容器 容器存储对象和数据.它们基本上是基于模板的泛型类 ...
最新文章
- 图说数据中心蒸发节能技术
- poj1236-Tarjan算法
- 使用 dotnet-monitor 在 Kubernetes 中收集 .NET metrics
- sklearn官网-多分类问题
- mysql数据库总览_MySQL架构总览-查询执行流程-SQL解析顺序
- 电机的入门之路系列2--电机驱动芯片2003的用法
- sed shell 替换空格_shell三剑客之sed!
- JS/html5前端合成语音(播报)
- Eclipse配色学习
- php向mysql写入_PHP向MySql中插入数据
- 台式计算机可以连接手机WiFi么,台式机能连wifi吗
- 如何有效地执行代码审查_使用这些有效的代码审查指南创建合理的办公环境
- uplink端口能接路由器吗_交换机常见的网络故障,你知道如何解决吗?
- FSCIL 小样本类增量学习
- 年轻代、年老代和持久代
- 一文读懂数字孪生的应用及意义
- 数据结构与算法————无向图
- 在后台删除新闻时,需要删除服务器上的文件夹
- PHP--入门(一)
- 使用脚本控制外部流程-CMD
热门文章
- 在Perl程序中显示进度条之多姿多彩的自写代码
- opencv 运动追踪_足球运动员追踪-使用OpenCV根据运动员的球衣颜色识别运动员的球队
- Python中的线性回归:Sklearn与Excel
- Markdown 图标 快捷键
- 为什么以前那种到处喝咖啡创业的场景一去不复返了?
- 可以编辑的标签控件CStatic
- linux php运行用户名和密码,Linux实例(一)使用用户名密码验证连接Linux
- html引用c 变量,在jsp页面中定义全局变量,供其他页面引用
- 委外订单_听听晚报-英特尔扩大芯片委外订单、苹果秋季或举行两场发布会
- 时间设置偏移秒_零偏移有源低通滤波器,第2部分