美文网首页算法数据结构
iOS 构建二维数组数据结构

iOS 构建二维数组数据结构

作者: 人魔七七 | 来源:发表于2018-08-27 22:02 被阅读189次

OC 语言里面没有二维数组这样的数据结构。一般怎么创建这样的结构呢?

网上的解决方案是用一个大的数组嵌套几个小数组来表示,那么类似array[1,1] 就是第二个数组的第二个元素,也就是类似C语言的第二行第二列。大致是则个样子。 int array[5][3]={{80,75,92},{61,65,71},{59,63,70},{85,87,90},{76,77,85}};

但是这样嵌套必然太麻烦。

我们自己可以创建类似这样的一个数据结构,基于一维数组来构造。

大致思路是:

这个二维数组的索引是通过一维数组的(row x numberOfColumns) + column来换算获取。

- (void)buildArray2D

{

    for (int i = 0; i<self.rows*self.columns; i++)

    {

        [self.arrayContainer addObject:[NSNull null]];

    }

}

用NSNull 占位

- (id)getElementByIndexRow:(NSUInteger)row column:(NSUInteger)column

{

    NSAssert(row <= self.columns, @"row 不能大于 rows");

    NSAssert(column <= self.rows, @"column 不能大于 columns");

    id returnElement = self.arrayContainer[row*self.columns + column];

    return returnElement;

}

- (void)setElementByIndexRow:(NSUInteger)row column:(NSUInteger)column newValue:(id)newValue

{

    NSAssert(row <= self.columns, @"row 不能大于 rows");

    NSAssert(column <= self.rows, @"column 不能大于 columns");

    self.arrayContainer[row*self.columns + column] = newValue;

}

利用row x numberOfColumns) + column 关系设置或者获取元素,并用NSAssert做越界判断抛出异常

相关文章

  • iOS 构建二维数组数据结构

    OC 语言里面没有二维数组这样的数据结构。一般怎么创建这样的结构呢? 网上的解决方案是用一个大的数组嵌套几个小数组...

  • 【C++】小议二维数组

    一、二维数组的介绍 当数组元素具有两个下标时, 该数组称为二维数组。 二维谁可以看做具有行和列的平面数据结构。 二...

  • pandas中的 .iloc 和 .loc

    Pandas 基本的数据结构是 Series(数组) 和 DataFrame(类似二维数组),Pandas 提供了...

  • 通过给定带上级的二维数组生成无限层级应用

    查询应用得到带pid的二维数组 构建应用

  • pandas基本用法

    方法与操作 一维数组 TODO 二维数组 1.1操作excel 自建DataFram数据结构 读取excel 数据...

  • Objective-C 二维数组详解(转)

    在实际的项目开发中,二维数组也是常常用到的数据结构。OC中的二维数组也是通过一维数组来建立的,今天我们来详解一下如...

  • pandas学习-4

    Pandas数据结构Dataframe:基本概念及创建 二维数组"Dataframe:是一个表格型的数据结构,包含...

  • [GuangZhou_Biotrainee]R语言基础_2

    —————————第一部分[三维数据结构]——————— 一、三维数据结构 数组概况: 二维数据结构——矩阵↓叠加...

  • hdf5存储

    pandas区别于numpy,主要数据结构是DataFrame,是具有行列索引的二维数组,而numpy单单是数组,...

  • 2020-07-02

    算法和数据结构梳理 线性表 顺序表数组(移动、原地操作、前缀和)多数组(合并 交集二维数组(旋转、数独、染色、置零...

网友评论

    本文标题:iOS 构建二维数组数据结构

    本文链接:https://www.haomeiwen.com/subject/irhxwftx.html