从随机维数组中查找值的索引

叶梅拉
int getIndex(int a[], int size, int value)
{
    int index = 0;

    while (index < size && a[index] != value)
    {
        ++index;
    }

    return (index == size ? -1 : index);
}

这是一种返回数组内部值的索引的方法。我想有一个对任何尺寸都可以做到这一点的方法。如何使它通用?还是完全有可能?

彼得-恢复莫妮卡

您始终可以将指针传递给多维数组的第一个元素及其中所有元素的数量,即每个维度中大小的乘积。从那里开始,算法就如同一维数组。

数组中以及多维数组中的元素都保证在内存中是连续的。

返回值将是一个索引;该函数将不知道尺寸的数量及其大小。调用者必须从找到的元素的“平坦”整体索引中重建每个数组维度中的索引;例如对于a int arr[2][5],返回值8将对应于element arr[1][2]“平坦”索引和多维索引元组之间的关系(当然)是双射的。

#include<stdio.h>

#define DIM1 2
#define DIM2 5

int arr[DIM1][DIM2]; // zero-initialized

 // note: for a paramater, int a[] means int *a
int getIndex(int a[], int size, int value)
{
    int index = 0;

    while (index < size && a[index] != value)
    {
        ++index;
    }

    return (index == size ? -1 : index);
}

int main() 
{
    arr[1][2] = 1;

    int index = getIndex(arr[0], DIM1*DIM2, 1);

    if(index >= 0)
    {
        int dim1 = index/DIM2;
        int dim2 = index%DIM2; // modulo resp. remainder

        printf("found a 1 at [%d][%d]\n", dim1, dim2);
    }
    else
    {
        printf("Could not find 1 in arr\n");
    }
    return 0;
}

会话示例:

$ gcc -Wall -o multi-arr multi-arr.c && ./multi-arr
found a 1 at [1][2]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

查找一维数组中连续标志值的索引

来自分类Dev

查找一维数组中连续标志值的索引

来自分类Dev

Matlab中的N维数组索引:在中间查找数组

来自分类Dev

查找3维NumPy数组的唯一值的索引

来自分类Dev

查找数组元素的维索引

来自分类Dev

c中二维数组中的随机值

来自分类Dev

从二维数组中检索随机值

来自分类Dev

在与索引比较的数组中查找值

来自分类Dev

在二维数组中查找特定值

来自分类Dev

在numpy数组中查找X值并替换为随机值

来自分类Dev

如何生成N维随机值数组?

来自分类Dev

如何查找数组中特定字符串的随机值

来自分类Dev

随机播放,然后查找并替换二维数组中的重复项-无需排序

来自分类Dev

在二维数组中查找随机元素,然后对其执行操作

来自分类Dev

给定值查找数组索引

来自分类Dev

创建随机数组并获取索引中的值以及输入值但获取的信息错误时的索引

来自分类Dev

在二维数组中查找有效的邻居索引

来自分类Dev

在二维数组中查找数量最多为1的索引和列

来自分类Dev

在二维数组Javascript中查找零索引数据

来自分类Dev

使用swift在数组中查找某个值的索引

来自分类Dev

如何在Android中查找数组索引值

来自分类Dev

使用NumPy在数组中查找最大值的索引

来自分类Dev

在numpy数组中查找多个值的行索引

来自分类Dev

如何在基于索引的多维数组中查找值

来自分类Dev

使用swift在数组中查找某个值的索引

来自分类Dev

在带有索引的数组中查找`uniq`值

来自分类Dev

查找数组中两个最小值的索引

来自分类Dev

零维数组中的随机一

来自分类Dev

在具有浮点值的二维数组中查找数组

Related 相关文章

热门标签

归档