c++ array学习
参考资料:
cppreference.com
本文代码:
本文源码
array和vector的区别是array是和C++中的数组类似,不能动态改变数组大小,所以会比vector少很多函数。
目录
- 隐式定义的成员函数
- 1.operator= (将另一个容器拷贝过来)
- 元素访问
- 2.at (访问指定元素,进行下标检查)
- 3.operator[] (访问指定元素,可能出现访问越界)
- 4.front (访问第一个元素)
- 5.back (访问最后一个元素)
- 6.data (返回数组第一个元素的地址指针)
- 迭代器
- 7.begin/cbegin (返回指向容器第一个元素的迭代器 /常量迭代器)
- 8.end/cend(返回指向容器尾端的迭代器/常量迭代器)
- 9.rbegin/rcbegin(返回指向容器最后一个元素的迭代器/常量迭代器)
- 10.cend/crend (返回指向容器前端的逆向迭代器/常量迭代器)
- 容量
- 11.empty (判断容器是否为空)
- 12.size (返回容器当前元素个数)
- 13.max_size (返回容器可容纳的最大元素个数)
- 操作
- 14.fill (以指定值填充容器 )
- 15.swap (交换两个容器的内容)
隐式定义的成员函数
1.operator= (将另一个容器拷贝过来)
array<int,3> vec;
array<int,3> tempVec;
//vec:1 2 3
//tempVec:4 5 6
vec = tempVec;
//vec:4 5 6
//tempVec:4 5 6
元素访问
2.at (访问指定元素,进行下标检查)
arr.at(site);
3.operator[] (访问指定元素,可能出现访问越界)
arr[site];
4.front (访问第一个元素)
//arr:1 2 3 4 5
arr.front();
// 1
5.back (访问最后一个元素)
//arr:1 2 3 4 5
arr.back();
// 5
6.data (返回数组第一个元素的地址指针)
//返回第一个元素的地址
arr.data() ;
//返回第一个元素的值
*arr.data();
迭代器
7.begin/cbegin (返回指向容器第一个元素的迭代器 /常量迭代器)
//打印第二个元素
auto ite = tempArr.begin();
std::cout << *++ite << std::endl;//打印第一个元素
auto cIte = tempArr.cbegin();
std::cout << *cIte << std::endl;
8.end/cend(返回指向容器尾端的迭代器/常量迭代器)
//打印倒数第一个元素
auto ite = tempArr.end();
std::cout << *--ite << std::endl;//顺序打印tempArr
for (auto cIte = tempArr.begin(); cIte != tempArr.cend(); ++cIte) {std::cout << *cIte << " ";
}
9.rbegin/rcbegin(返回指向容器最后一个元素的迭代器/常量迭代器)
//打印倒数第二个元素
auto ite = tempArr.rbegin();
std::cout << *++ite << std::endl;//打印最后一个元素
auto cIte = tempArr.crbegin();
std::cout << *cIte << std::endl;
10.cend/crend (返回指向容器前端的逆向迭代器/常量迭代器)
//打印第一个元素
auto ite = tempArr.rend();
std::cout << *--ite << std::endl;//逆序打印tempArr
for (auto cIte = tempArr.rbegin(); cIte != tempArr.crend(); ++cIte) {std::cout << *cIte << " ";
}
容量
11.empty (判断容器是否为空)
bool empty()
if (arr.empty()) {std::cout << "arr为空!\n";}else {std::cout << "arr不为空!\n";}
12.size (返回容器当前元素个数)
arr.size();
13.max_size (返回容器可容纳的最大元素个数)
因为array是固定大小的,所以max_size和size的一样的
arr.max_size();
操作
14.fill (以指定值填充容器 )
//tempArr:1 2 3 4 5
tempArr.fill(8);
//tempArr: 8 8 8 8 8
15.swap (交换两个容器的内容)
//交换前:
//vec:1 3 5 7
//tempVec:2 4 6 8
vec.swap(tempVec);
//交换后:
//vec:2 4 6 8
//tempVec: 1 3 5 7
c++ array学习相关推荐
- javascript Array学习与使用
一.Javascript数组是无类型的:数组元素可以任意类型,并且同一个数组中的不同元素也可能有不同的类型,javascript数组是动态的,会根据需要增长或者缩减,每一个数组都有一个length属性 ...
- 简单python数据获取分析_python学习——简单数据分析
引入 斜杠青年:即跨界青年 做一个不可替代的数据分析师 介绍几个包: 用于web开发的包:django,flask 包 数据分析常用包:NumPy(数学计算),Pandas(基于NumPy的分析工具) ...
- 老男孩上海校区Python面试题
python面试题 第一章:python基础 数据类型: 1 字典: 1.1 现有字典 dict={'a':24,'g':52,'i':12,'k':33}请按字典中的 value 值进行排序? 1. ...
- WPS表格:函数公式
WPS函数 1. ROW().ROWS(array) 1)ROW() 2)ROWS(array) 2. COUNT(参数).COUNTA(参数).COUNTIF(参数) 1)COUNT() 2)COU ...
- js array 删除指定元素_数组--学习笔记(数据结构数组 /js数组)
学习目标: 了解什么是数组: 数组如何访问内存地址(一维,二维): 什么是数组 是由相同类型的元素的集合所组成的数据结构,分配一块连续的内存来存储.利用元素的索引可以计算出该元素对应的存储地址. 最简 ...
- Lodash学习--Array篇
作者: Yeaseon Blog:yeaseonzhang.github.io 原文链接 Lodash是一个具有一致接口.模块化.高性能等特性的 JavaScript 工具库.还有一个类似的库是und ...
- Python语言编程学习:numpy中的array格式数据切片与pandas中的dataframe格式数据切片、相互转换
Python语言编程学习:numpy中的array格式数据切片与pandas中的dataframe格式数据切片.相互转换 目录 numpy中的array格式数据切片与pandas中的dataframe ...
- 【深度学习】array, list, tensor,Dataframe,Series之间互相转换总结
一.前言 对于在Deep Learning的学习中总会有几个数据类型的转换,这次想把这些常用的转换做一个总结,方便以后看. 这些主要包括:Dataframe.Series(pandas), array ...
- JavaScript学习笔记02【基础——对象(Function、Array、Date、Math)】
w3school 在线教程:https://www.w3school.com.cn JavaScript学习笔记01[基础--简介.基础语法.运算符.特殊语法.流程控制语句][day01] JavaS ...
最新文章
- 用Python解“求整数段和”题
- python手机版ios-iOS 项目中如何使用 Python
- 让一张图片随着手指的移动而移动
- 不属于mysql常量的是_R256是内部“字”继电器WR25的( )号位。_学小易找答案
- 7000字 23张图,Pandas一键生成炫酷的动态交互式图表
- android startanimation 回调,ScheduledThreadPoolExecutor执行莫名停止问题Android几个动画回调运行线程...
- Combobox MVVM绑定并设置选中
- 14.高性能MySQL --- 应用层优化
- 中国高新技术企业名单数据
- python 提取字幕_使用Python从zimuku下载字幕
- 通识3——1080i、1080p、2K、4K是什么意思?
- spring编译源码 spring-cglib-repack-3.2.7.jar和spring-objenesis-repack-2.6.jar 缺失解决办法 groovy eclipse插件安装
- linux aria2c 百度云,使用Aria2c和百度网盘助手实现高速下载百度网盘资料
- 关于苏宁易购的好坏与网购的心酸苦逼史,有同感的请继续顶起
- kettle6.0 连接oracle11g,Kettle表输出报关闭的连接问题的解决方法
- 1008:Maya Calendar
- windows 7 浏览器无法进网站,提示安全证书存在问题(GlobalSign)
- 04.第五章、范围管理
- MyBatis-Plus自动填充字段(创建时间、修改时间、uuid等)
- 读书笔记-人月神话12
热门文章
- qt linux webservice,Qt实现访问WebService
- java成绩查询_JavaWeb项目第三次总结_成绩查询的实现
- 实战sqlmap绕过WAF
- html中给div设置的属性怎么样才能拿得到_HTML与CSS结合的三种方式:优先级比较...
- random模块详解
- js文件处理File
- 用three.js写一个简单的3D射门游戏
- MySQL 5.7.10 免安装配置
- [转]sql,N/$/#/@的含义和作用
- 哈哈,这个小游戏很有意思!