如何创建循环数组

How to create a circular array?

本文关键字:循环 数组 创建 何创建      更新时间:2023-10-16

我正在尝试创建对数组的循环引用。例如

float arr1[10] = {0,1,2,3,4,5,6,7,8,9};

然后我使用循环变量来访问数组的元素。

for (int i=0;i<10;i++){
    std::cout<<arr1[i]<<std::endl;
    //other processing using arr1[i] indexing
}

在这里,我只能使用i<=10.如果我想做i<=16并且如果i>10那么索引应该转到arr1[0]并从那里继续。什么是可取或推荐的方法?

您需要使用取模运算符%14 % 10 = 4 因此,只需使用用于访问它的索引即可执行此操作。

你应该像@Jdman1699所说的模运算符一样使用。在这里你可以找到一个例子:

int position; //the position you want to get
float out = arr1[position%10];

对于您的特定程序,我只是建议将 base for 循环放在另一个 for 循环中(因为考虑到您的源代码,您似乎想多次打印出数组的所有元素(。这是因为访问元素 n 与访问元素 n + 10 没有什么不同。但是,如果您打算创建某种函数来访问数组的任何元素,我会使用模运算符基数 10。或

unsigned long int newidx = iptidx%10;

然后使用 Newidx。

也许你正在寻找...

for (int i=0;i<10;i++){
    std::cout<<arr1[i%10]<<std::endl;
    //other processing using arr1[i] indexing
}