OC中动态创建可变数组的问题.有一个数组,数组中有13个元素,先将该数组进行分组,每3个元素为一组,分为若干组,最后用一个数组统一管理这些分组.(要动态创建数组).两种方法,oc数组排序
投稿于 被查看 4625 次 评论:195
OC中动态创建可变数组的问题.有一个数组,数组中有13个元素,先将该数组进行分组,每3个元素为一组,分为若干组,最后用一个数组统一管理这些分组.(要动态创建数组).两种方法,oc数组排序
- <span style="font-size:24px;">//////第一种方法
- // NSMutableArray *arr = [NSMutableArray array];
- // for (int i = 0; i < 13; i ++) {
- // [arr addObject:[NSString stringWithFormat:@"lanou%d",i + 1]];
- // }
- // NSLog(@"%@",arr);
- //
- ////分组
- // NSMutableArray *arrs = [NSMutableArray array];
- // for (NSInteger i = 0; i < [arr count] ; i ++) {
- //
- // NSMutableArray *arr1 = [NSMutableArray array];
- // NSInteger counts = 0;
- //
- // while (counts != 3 && i < [arr count] ) {
- // counts++;
- // [arr1 addObject:arr[i]];
- // i ++;
- //
- //
- // }
- // [arrs addObject:arr1];
- //
- // i --;
- // }
- // NSLog(@"%@",arrs);
- //第二种
- // NSMutableArray *arr = [NSMutableArray array];
- // for (int i = 0; i < 26; i ++) {
- // [arr addObject:[NSString stringWithFormat:@"lanou%d",i + 1]];
- // }
- // NSLog(@"%@",arr);
- // NSMutableArray *arrs = [[NSMutableArray alloc] initWithCapacity:1];
- // NSMutableArray *smallArr = nil;//变量的定义
- // for (int i = 0; i < [arr count]; i ++) {
- // if (i % 3 == 0) {
- // //只要读到0,3,6,9,12就开辟空间存储接下来的元素
- // smallArr = [[NSMutableArray alloc] initWithCapacity:1];
- // //将小数组添加到大数组中进行管理
- // [arrs addObject:smallArr];
- // }
- // [smallArr addObject:[arr objectAtIndex:i]];
- // }
- // NSMutableArray *arr = [NSMutableArray array];
- //[bigArr count] == 0;数组中有没有元素
- //big != nil; big 指向无效的空间(堆区空间)
- // NSLog(@"%@",arrs);</span>
给你一个代码吧,具体的看一下注释:
#include<stdio.h>
#include<stdlib.h> //需要include这个头文件,后面malloc库函数要用它
void main()
{
int n,i;
int *a; //需要这么声明动态数组,也就是先声明一个指针
printf("enter the num of elements:");
scanf("%d",&n);
a=(int *)malloc(n*sizeof(int));//取得数组的成员个数后,需要动态的申请数组空间
for(i=0;i<n;i++)
a[i]=i+1;
printf("Output: ");
for(i=0;i<n;i++) printf("%d ",a[i]);
delete a;//动态数组使用完毕后不要忘了释放所申请的数组空间
}
数组长度是无法修改的,但是可以另外想办法。
第一种方法是使用List来代替,使用List.Add()方法增加内容。
第二种情况 如果是因为函数需要数组作为参数之类的原因的话,可以新建1个长度为新的长度的数组,然后使用Array.Copy()将原数据复制到新的数组中。
Array.Copy(要复制的数据数组, 原数组复制开始处的索引, 接收数据数组,接收数据存储开始处的索引,复制数据的长度);
例如 :复制A数组的所有数据到B数组的开始位置。
Array.Copy(ArrayA,0,ArrayB,0,ArrayA.Length);
相关文章
- 暂无相关文章
用户评论