循环数组 及 实现

怎么实现数组的循环累加,simulink 🏆本文收录于专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家!持续更新中,up!up!up!! 阅读详情
AI摘要

本文介绍了循环数组的概念,即数组的头尾相连形成一个环状结构,并提供了C++代码示例展示如何创建和遍历循环数组。通过使用取模运算 `%`,可以实现对数组的无限循环遍历或指定次数遍历。示例代码展示了如何输出完整的环形数组内容。

数组 是一种 线性结构, 在内存中是一段 连续的内存 存储空间存储。  那么 如何实现循环的数组呢?

什么是循环数组?  循环数组 就是 数组的头尾是相连的。 

假如有一个数组 [3,7,2,9,1,5] , 形成的环形数组 如下图:

 用代码实现,如下:

vector<int> num = {3,7,2,9,1,5};

int size = num.size();

int i = 0;

while (true)
{
    cout << " " << num[i % size];
    i++;
}

 使用 % 求余 的技巧,来实现 持续遍历循环数组。

如果想 遍历 一圈该循环数组,代码如下:

#include <iostream>
#include <vector>

using std::vector;
using std::cout;
using std::endl;

int main()
{
    vector<int> num = {3,7,2,9,1,5};

    int size = num.size();

    for(int index=0; index<2*size;index++)
    {
        cout <<" "<< num[index % size] ;
    }

    return 0;
}

 执行的结果:

进芯AVP28335烧录避坑全记录:CCS、Uniflash、C2Prog、SDFlash四大工具配置详解 本文详细解析了进芯AVP28335芯片在烧录过程中遇到的常见问题及解决方案,涵盖CCS、Uniflash、C2Prog和SDFlash四大工具的配置要点。针对国产器件AVP28335的特殊需求,提供了从开发环境准备到烧录验证的全流程指南,帮助开发者高效完成程序烧录,避免常见陷阱。 阅读详情

相关推荐

有限时间 vs 固定时间 vs 预定时间滑模:稳定性分析与仿真验证方法对比(中)

有限时间滑模控制(FTSMC)和固定时间滑模控制(FixTSMC)是两种重要的控制策略,旨在实现系统状态的快速收敛。FTSMC通过设计滑模面和控制律,确保系统状态在有限时间内收敛到原点,但其收敛时间与初始状态相关。FixTSMC则进一步优化,使收敛时间与初始状态无关,适用于高动态环境,具有更强的鲁棒性和更平滑的控制信号。两种方法均通过李雅普诺夫函数证明其稳定性,并通过仿真验证其有效性。FixTSMC在工程应用中更为可靠,尤其适合安全关键系统。

Lyajpunov的博客 3224

循环数组

原文地址:http://www.geeksforgeeks.org/circular-array/如果一个数组的最后一个元素的下一个元素是整个数组的第一个元素,那么我们认为这个数组就是循环数组。循环数组也一般用队列来实现。例题:假设有n个人围坐着圆桌,他们的名字是A,B,C,D,……。给定一个名字,我们要做的就是打印出n个人的座次,从这个给定的人开始。 例如,假设有6个人ABCDEF,已知了D,那

K.Sun 1万+

FT601Q芯片深度解析:从USB3.0引脚定义到FPGA FIFO协议实战选型

本文深入解析FT601Q芯片在USB3.0接口设计与FPGA协议栈开发中的应用,详细介绍了USB3.0引脚定义、FT601Q芯片架构、245同步FIFO模式及硬件设计要点,帮助工程师实现高速数据传输系统。

weixin_30607659的博客 447

循环遍历数组的三种方法

方法一:for循环 用法:通过for循环,生成所有的索引下标 for(var i = 0 ; i <= arr.length-1 ; i++){ 程序内容 } 方法二:forEach循环 语法: 数组.forEach(function(形参1,形参2,形参3){})        形参1: 存储的是当前循环次数时,获取的单元数据     参数2: 存储的是当前循环次数时,获取的单元索引下标     参数3: 存储的是原始数组     参数名称可以任意定义,参数个数,根据需求来定义 var arr =

weixin_46069849的博客 7153

python语言下使用opencv接口cv2.VideoCapture()接口调用海康机器人工业相机

文章目录 目录 文章目录 前言 一、opencv接口介绍 二、调用海康机器人工业相机 1.使用海康机器人工业相机的前提 2.调用海康机器人工业相机进行显示 3.调用海康机器人工业相机进行存图 4.调用海康机器人工业相机存视频 5.调用海康机器人工业相机进行简单图像处理 总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下.

qq_39570716的博客 1万+

Mac 下 OpenClaw 安装全记录:从零到一的保姆级图文教程

本文主要介绍了Mac 下 OpenClaw 安装全记录:从零到一的保姆级图文教程,希望能对学习使用OpenClaw 的同学们有所帮助。 文章目录 1. 背景 2. 安装教程 2.1 安装OpenClaw 2.2 配置模型 2.3 对话 3. 后续使用步骤 4. 关闭程序

weixin_43178406的博客 11万+

JS中循环遍历数组的几种常用方式总结

第一种:for循环,也是最常见的 const arr = [11, 22, 33, 44, 55, 66, 77, 88]; for (let i = 0; i < arr.length; i++) { console.log(arr[i]); } 打印结果: 第二种:forEach() 1.)forEach() 遍历普通数组 const arr = [11, 22, 33, 44, 55, 66, 77, 88]; arr.forEach(item => {

铁锤妹妹的博客 6万+

【深度解析】解决 NVIDIA 显卡“掉卡”与 Xid 79 错误:开启持久化模式 (Persistence Mode)

【深度解析】解决 NVIDIA 显卡“掉卡”与 Xid 79 错误:开启持久化模式 (Persistence Mode)

Edward的博客 865

数组之循环

数组之循环

oxygensunshine的博客 5229

微信小程序码 createWxaCodeUnlimit 生成总是报错 41030 的解决方案

41030错误本质上就是路径不合法。路径多写了一个斜杠路径带了参数小程序版本未发布或 app.json 配置不一致。如果确认页面存在,可以通过来跳过检查。微信小程序 getUnlimitedQRCode 官方文档路径前不能加 /,参数放 scene,发布版本要有这个页面,不行就关掉 check_path。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 475

基于STM32F1XX 、HAL库的BH1745NUC-E2环境光传感器驱动应用C语言程序设计

printf("BH1745制造商ID: 0x%02X\r\n", BH1745_ReadManufacturerID(&hbh1745));#define BH1745_ADDR_HIGH 0x39 // ADDR引脚接VDD。#define BH1745_ADDR_LOW 0x38 // ADDR引脚接地。= 0xE0) // BH1745制造商ID为0xE0。// 清除RGBC测量使能位。printf("BH1745初始化失败\r\n");

PP_Cottage的博客 281

数组循环的六种方法

1.forEach() let array = [1,2,3,4]; array.forEach((item, index, array) => {   console.log(item); }); forEach会遍历数组, 没有返回值, 不允许在循环体内写return, 不会改变原来数组的内容.forEach()也可以循环对象。 2.map() let array = [1, 2, 3...

lifangfang0607的博客 3万+

YOLOv8+BiFPN双向特征金字塔:多尺度目标检测精度提升28%的实战教程

双向特征金字塔网络(BiFPN)是一种强化多尺度特征融合支持“自顶向下+自底向上”的双向特征流动,同时保留不同尺度的细节信息;引入加权融合机制,自动学习不同特征的重要性权重;裁剪冗余节点,在轻量化的同时提升融合效率。

m0_64661770的博客 492

竞赛:图解循环数组--借助循环数组进行队列的模拟实现以及循环数组的理解讲解

利用循环数组模拟实现队列以及循环数组的图解理解

海绵宝宝de派小星的博客 2792

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

基于Java数组实现循环队列

重点:循环队列,无论使用数组实现还是链表实现,都要多开一个空间,也就意味着,要是一个存k个数据的循环队列,要开k+1个空间,否则无法实现判空和满。

qq_62274623的博客 1149

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

使用数组实现循环队列

为了节省空间,这里使用数组实现了更加实用 的循环队列,代码主体和上一篇大多一样,但是涉及到一些细节。 下面是具体的思路: 上一篇中front表示第一个元素前面的位置,rear表示最后一个元素的位置, 但是,在这里由上图可知,front和rear的含义发生了调整。 牺牲一个空间,来提高的代码的可礼节性,这样的循环队列比maxSize上存储一个元素,但是无大碍。 这里面的一个重点就是循环队列的实际有效...

大道至简 3009

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

用数组实现循环队列

<br />      若用数组实现队列一般会整成循环队列,要不队列没法用~~~实现的功能包括创建队列、入队列、出队列、读队列头~~~~~~~<br />/************************************************************************/ /* author : thomas E-mail: chenhua308@gmail.com */ /******

Thomas chen的专栏 1万+

用循环数组实现队列

我们可以将队列当作一般的表用数组加以实现,但这样做的效果并不好。尽管我们可以用一个游标last来指示队尾,使得Enqueue运算可在O(1)时间内完成,但是在执行Dequeue时,为了删除队头元素,必须将数组中其他所有元素都向前移动一个位置。这样,当队列中有n个元素时,执行Dequeue就需要O(n)时间。为了提高运算的效率,我们用另一种方法来表达数组中各单元的位置关系。设想数组Q[1..Ma

Kinglliam的专栏 4406

数组实现循环队列

循环队列 队列是一种先进先出的顺序存储结构,尾端进,头端出。这里我用数组来模拟队列,并达到循环队列的效果 思路分析 首先定义一个数组,来存储数据。随后定义一个头指针front,指向队列的头元素;定义一个尾指针rear,指向待插入的位置,也就是队尾元素的后一个位置。 当头尾指针指向同一个位置时,即rear == front的时候,队列为空,这个好理解。当 (rear+1)%capacity == front时,队列为满。具体请看图解。 public class Test { private int[

weixin_44061521的博客 5279

python实现数组循环移动

题目 方法1 def shift(N, M, A): """""" if (M % N) == 0: return 0 def loc(count, oldIndex, curIndex, N, M, A): newIndex = (oldIndex + M) % N if count == N - 1: return 0 if (newIndex == curIndex):

qq_38401890的博客 919

数组实现循环队列 java_java实现 用数组实现循环队列

/*** 数组实现循环队列**/public class LoopQueue{private Object[] elements;int capacity;int head;int rear;public LoopQueue(int capacity) {this.elements = new Object[capacity];this.capacity = capacity;}public ...

weixin_36309562的博客 144

python 循环数组实现队列

代码: # @TIME : 2019/4/7 下午12:51 # @File : 循环数组实现队列.py # 最简单的方法不好,pop(0), 每次弹出时间复杂度总是O(N), 避免这种方法,最好做到O(1) # 使用循环数组的方式,前面用空指针代替,循环第一个元素取模的方式做 class Empty(Exception): pass class ArrayQueue: ...

sinat_15355869的博客 771

用指针实现数组元素循环移动

本关任务:编写程序,用指针实现以下功能, n 个整数存入一维数组中,将该数组循环左移 m 位。如一个长度为 10 的数组中原来的元素顺序为0 1 2 3 4 5 6 7 8 9,则循环左移 3 个位置后元素的顺序为 3 4 5 6 7 8 9 0 1 2。假如一个长度为n=10的数组中,原来的元素顺序为(0 1 2 3 4 5 6 7 8 9),循环左移m=3个位置。第一步:首先逆置数组前m个元素,则数组中元素为(2 1 0 3 4 5 6 7 8 9);printf(“输入%d个整数:\n”,n);

2402_89119213的博客 363

利用数组实现一个循环队列

用数组实现循环队列的关键是头指针front和尾指针tail的解除耦合。 这里采用的方法维护一个头指针front,和一个当前容量size,尾部指针始终可以由以下公式计算出来 class MyCircularQueue { private int[] nums; private int size; private int maxSize; private in...

wwxy1995的博客 893
上一篇: Python中使用openpyxl库 处理Excel表格,将结果保存到生成的新的Excel表格
下一篇: 数据结构—单调栈(处理 下一个更大元素 和 接雨水 问题)
Monkey Ji
博客等级 码龄9年 113粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值