【C++程序员必修第一课】C++基础课程-12:std::array 固定数组

1 本课主要内容:

  • std::array 固定数组的声明
  • 基本使用:赋值、访问数组、遍历等

2 主要知识点:

  • std::array 固定数组的声明

#include <array>// std::array 固定数组例子
std::array<int, 5> array1;                      // 未初始化数组元素的值
std::array<int, 5> array2{ 1, 2 };              // 初始化为:1 2 0 0 0
std::array<int, 5> array3{ 1, 2, 3, 4, 5 };     // 初始化为:1 2 3 4 5
  • 赋值

// 数组赋值
array1[0] = 10;     // 使用 [INDEX] 赋值
array1.at(1) = 20;  // 使用 at(INDEX) 赋值
  • 访问数组元素

// 访问数组元素
const int v1 = array2[0];       // 使用 [INDEX] 访问
const int v2 = array2.at(1);    // 使用 at(INDEX) 访问
const int v3 = array2.front();  // 访问第一个
const int v4 = array2.back();   // 访问最后一个
  • 遍历数组

// 遍历 array 数组:例子1
for (const auto& v : array3) {std::cout << v << std::endl;
}// 例子2:
for (int i=0; i < array3.size(); ++i) {const int v = array3.at(i);std::cout << v << std::endl;
}
  • 其他函数

// 数组大小
const int arraySize = array2.size();
// 判断数组是否为空
const bool isEmpty = array2.empty();
  • 完整例子代码

#include <array>// std::array 固定数组例子
std::array<int, 5> array1;                      // 未初始化数组元素的值
std::array<int, 5> array2{ 1, 2 };              // 初始化为:1 2 0 0 0
std::array<int, 5> array3{ 1, 2, 3, 4, 5 };     // 初始化为:1 2 3 4 5
// 数组赋值
array1[0] = 10;     // 使用 [INDEX] 赋值
array1.at(1) = 20;  // 使用 at(INDEX) 赋值
// 访问数组元素
const int v1 = array2[0];       // 使用 [INDEX] 访问
const int v2 = array2.at(1);    // 使用 at(INDEX) 访问
const int v3 = array2.front();  // 访问第一个
const int v4 = array2.back();   // 访问最后一个
std::cout << "array[0] = " << v1 << std::endl;
std::cout << "array.at(1) = " << v2 << std::endl;
std::cout << "array.front() = " << v3 << std::endl;
std::cout << "array.back() = " << v4 << std::endl;
// 数组大小
const int arraySize = array2.size();
std::cout << "array.size() = " << arraySize << std::endl;
// 判断数组是否为空
const bool isEmpty = array2.empty();
std::cout << "array.empty() = " << isEmpty << std::endl;
// 遍历 array 数组
for (const auto& v : array3) {std::cout << v << std::endl;
}

3 注意事项:

  • 访问固定数组需要注意下标越界,就是 array[index], array.at(index) 访问数组时 index

4 课后练习:

  • 练习1:利用 std::generate_canonical 产生 100 组 [0,1] 范围内随机浮点数,存放到 array 数组1;
  • 练习2:遍历数组1,判断元素值 <0.5,元素值 +1.0,把结果更新到数组元素值,最后再遍历打印出来

附录:在线视频课程

【C++程序员必修第一课】C++基础课程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/112867.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

5256C 5G终端综合测试仪

01 5256C 5G终端综合测试仪 产品综述&#xff1a; 5256C 5G终端综合测试仪主要用于5G终端、基带芯片的研发、生产、校准、检测、认证和教学等领域。该仪表具备5G信号发送功能、5G信号功率特性、解调特性和频谱特性分析功能&#xff0c;支持5G终端的产线高速校准及终端发射机…

Simple RPC - 02 通用高性能序列化和反序列化设计与实现

文章目录 概述设计实现通用的序列化接口通用的序列化实现【推荐】 vs 专用的序列化实现专用序列化接口定义序列化实现 概述 网络传输和序列化这两部分的功能相对来说是非常通用并且独立的&#xff0c;在设计的时候&#xff0c;只要能做到比较好的抽象&#xff0c;这两部的实现…

Linux高性能服务器编程——ch5笔记

第5章 Linux网络编程基础API 5.1 socket地址API 主机字节序&#xff08;小端字节序&#xff09;&#xff1a;整数的高位字节存储在内存的高地址处&#xff0c;而低位字节则存储在内存的低地址处。 网络字节序&#xff08;大端字节序&#xff09;&#xff1a;相反。 void byt…

全光谱护眼灯有哪些?2023全光谱护眼台灯推荐

随着电子设备的不断普及&#xff0c;手机、平板电脑、显示器、电视机等几乎是家家户户的必备品&#xff0c;也正因为眼睛有那么多时间、那么多机会去盯着屏幕&#xff0c;所以如今近视低龄化现象也越来越严重了。随着科技的不断发展&#xff0c;台灯的发展也越来越多样化&#…

成都瀚网科技有限公司:开抖音店铺有哪些注意事项?

成功经营一个小店不仅仅是发布产品视频那么简单&#xff0c;还需要注意一些重要的事情。开抖音店铺需要注意以下几点&#xff1a; 1、开抖音店铺有哪些注意事项&#xff1f; 合规管理&#xff1a;在抖音开店&#xff0c;首先要确保自己的运营合规。遵守相关法律法规及平台规定&…

关于yield你只需要知道这2点

1.yield是放在函数里面的&#xff0c;且带有yield的函数就叫做生成器&#xff0c;这时函数就成了一个对象&#xff0c;而不能把它作为函数来对待 def foo(num):print("introduction:")while:if num < 10:num 1yield num g foo()看上面的代码&#xff0c;我们把…

Python 基础问题

文章目录 python 中有哪些类型或数据结构什么是有序和无序什么是可变和不可变字典中&#xff0c;什么类型可以当做key去使用闭包是什么装饰器是什么 python 中有哪些类型或数据结构 在 Python 中&#xff0c;有多种类型和数据结构可用于存储和组织数据。以下是一些常见的类型和…

golang——工程组件logrus日志记录框架(结构化记录,支持文件切割,hook)

logrus 介绍一个golang 日志框架logrus 支持文本与JSON数据格式支持结构化记录支持hook 文档介绍 logrus文档 std 官方案例介绍了如何配置std打印 package mainimport ("os"log "github.com/sirupsen/logrus" )func init() {// Log as JSON instead…

Unoconv入门介绍和问题汇总

简介&#xff1a;Unoconv是一款基于LibreOffice/ Openoffice开发的命令行工具&#xff0c;可以将不同格式的文件&#xff08;如DOC、PPT、PDF等&#xff09;在不同的操作系统上通过Libreoffice/Openoffice转换为PDF、ODT、DOC、PNG、PPTX等格式&#xff0c;并支持在命令行中指定…

Elasticsearch学习笔记

1.核心概念 bucket: 一个数据分组&#xff08;类似于sql group by以后的数据&#xff09;metric&#xff1a;对bucket执行的某种聚合分析的操作&#xff0c;比如说求平均值&#xff0c;最大值&#xff0c;最小值。一些系列的统计方法(类似 select count(1) MAX MIN AVG) 请…

CUDA学习笔记5——CUDA程序错误检测

CUDA程序错误检测 所有CUDA的API函数都有一个类型为cudaError_t的返回值&#xff0c;代表了一种错误信息&#xff1b;只有返回cudaSuccess时&#xff0c;才是成功调用。 cudaGetLastError()用来检测核函数的执行是否出错cudaGetErrorString()输出错误信息 #include <stdi…

【lesson13】进程控制初识

文章目录 进程创建 进程创建 请你描述一下&#xff0c;fork创建子进程操作系统都做了什么&#xff1f; fork创建子进程&#xff0c;系统里多了一个进程&#xff0c;进程 内核数据结构 进程代码数据&#xff0c;内核数据结构由OS维护&#xff0c;进程代码数据一般由磁盘维护。…

位运算相关笔记

位运算 Part 1&#xff1a;基础 左移&#xff1a;左移一位&#xff0c;相当于某数乘以 2 2 2。左移 x x x位,相当于该数乘以 2 x 2^x 2x。 右移&#xff1a;右移一位&#xff0c;相当于某数除以 2 2 2。右移 x x x位&#xff0c;相当于该数除以 2 x 2^x 2x。 与运算&…

【Edabit 算法 ★☆☆☆☆☆】【分钟转秒数】Convert Minutes into Seconds

【Edabit 算法 ★☆☆☆☆☆】【分钟转秒数】Convert Minutes into Seconds math numbers Instructions Write a function that takes an integer minutes and converts it to seconds. Examples convert(5) // 300 convert(3) // 180 convert(2) // 120Notes Don’t forge…

markdown语法(更新中)

a ⃗ \vec{a} a 向量 a ‾ \overline{a} a 平均值 a ‾ \underline{a} a​下横线 a ^ \widehat{a} a (线性回归&#xff0c;直线方程) y尖 a ~ \widetilde{a} a 颚化符号 等价无穷小 a ˙ \dot{a} a˙ 一阶导数 a \ddot{a} a 二阶导数 $\vec{a}$ 向量 $\overline{a}$ …

【三维重建】DreamGaussian:高斯splatting的单视图3D内容生成(原理+代码)

文章目录 摘要一、前言二、相关工作2.1 3D表示2.2 Text-to-3D2.3 Image-to-3D 三、本文方法3.1生成式 高斯 splitting3.2 高效的 mesh 提取3.3 UV空间的纹理优化 四. 实验4.1实施细节4.2 定性比较4.3 定量比较4.4 消融实验 总结&#xff08;特点、局限性&#xff09; 五、安装与…

【框架源码篇 01】Spring源码-手写IOC

Spring源码手写篇-手写IoC 一、IoC分析 1.Spring的核心 在Spring中非常核心的内容是 IOC和 AOP. 2.IoC的几个疑问? 2.1 IoC是什么&#xff1f; IoC:Inversion of Control 控制反转&#xff0c;简单理解就是&#xff1a;依赖对象的获得被反转了。 2.2 IoC有什么好处? IoC带…

[ROS2系列] ORBBEC(奥比中光)AstraPro相机在ROS2进行rtabmap 3D建图

目录 背景&#xff1a; 一、驱动AstraPro摄像头 二、安装rtabmap error1&#xff1a;缺包 三、尝试 四、参数讲解 五、运行 error2: Did not receive data since 5 seconds! 六、效果​编辑 error4: 背景&#xff1a; 1、设备&#xff1a;pc&#xff1b;jeston agx …

语音芯片KT142C两种音频输出方式PWM和DAC的区别

目录 语音芯片KT142C两种音频输出方式PWM和DAC的区别 一般的语音芯片&#xff0c;输出方式&#xff0c;无外乎两种&#xff0c;即dac输出&#xff0c;或者PWM输出 其中dac的输出&#xff0c;一般应用场景都是外挂功放芯片&#xff0c;实现声音的放大&#xff0c;比如常用的音箱…

WMS透明仓库:实现仓储的全方位可视化与优化

一、WMS透明仓库的定义与特点 1. WMS透明仓库的定义&#xff1a;WMS透明仓库是一种基于信息技术的仓库管理系统&#xff0c;通过实时数据采集、分析和可视化&#xff0c;将仓库内外的物流流程、库存状态、人员活动等信息以透明的方式展示给相关利益方。 2. 实时数据采集&…