OC实现将N个数随机排列


 1 + (NSMutableArray *)randArray : (NSMutableArray *)arrayM
2 {
3
4 NSMutableArray *resultM = [[NSMutableArray alloc] initWithCapacity:arrayM.count];
5 NSInteger count = arrayM.count;
6 for (NSInteger i = 0; i < count; i ++)
7 {
8 NSInteger index = arc4random_uniform((unsigned int)arrayM.count);
9 [resultM addObject:[arrayM objectAtIndex:index]];
10 [arrayM removeObjectAtIndex:index];
11
12 }
13 return resultM;
14 }

OC实现将N个数随机排列

时间: 2024-10-19 18:12:17

OC实现将N个数随机排列的相关文章

OC -- NSArray NSMutableArray

NSArray  NSMutableArray的声明 注:NSArray与NSMutableArray中只能存放OC对象类型数据,不能存放int, float, double, struct, enum类型数据 NSArray *array1 = @[@"first", @"second", @"third"]; NSArray *array2 = [NSArray arrayWithObjects:@"one", @&quo

oc语言学习之基础知识点介绍(二):类和对象的进一步介绍

一.类.对象在内存中的存储 /* 内存分区: 栈:局部变量 堆:程序员自己写代码申请开辟的 程序员自己维护,编译器现在帮我们自动优化了,它在合适的给我们加上了释放空间的语句,所以我们现在写的对象不会造成内存泄露 全局区:所有的全局变量和静态变量 常量区:所有的常量 代码区:程序编译后的指令集 类是模板,肯定需要存在内存里面,因为实例化对象的时候需要根据这个模板来创建,那么存在内存里面,存在哪呢?? 类模板存在:全局区! 存的是:类的描述,还有所有的方法实现 每个对象都会有一个系统给我们的isa指

OC本学习笔记Foundatio框架集

一.OC数组 OC数组是一个类,它也分不可变数组NSArray和可变数组NSMutableArray. 1?不可变数组的创建 // 创建一个不可变数组.元素为一个OC字符串对象 @"小桥" NSArray *array1 = [NSArray arrayWithObject:@"小桥"]; // 创建一个不可变数组,元素为多个OC字符串对象 NSArray *array2 = [NSArray arrayWithObjects:@"葬花 桥",

黑马程序员-OC学习笔记之Foundatio框架集合类

---------------------- IOS开发.Android培训.期待与您交流! ---------------------- 一.OC数组 OC数组是一个类,它也分不可变数组NSArray和可变数组NSMutableArray. 1?不可变数组的创建 // 创建一个不可变数组,元素为一个OC字符串对象 @"小桥" NSArray *array1 = [NSArray arrayWithObject:@"小桥"]; // 创建一个不可变数组,元素为多个O

【学习ios之路:Objective-C】block块语法.NSDate和NSDateFormatter

一.Block块语法 块语法:可以在函数内部定义匿名函数 格式: ^返回值类型(参数列表){函数体}其中返回值类型可以省略 block简单练习: ①.求两个数的最大值 //int (^)(int,int)//block类型 int (^max)(int,int) = ^(int a,int b) {//block的实现体 return a > b ? a : b; }; int value = max(4,6);          printf("%d",value); ②.将一

斯坦福 IOS讲义 课件总结 二

1,OC里面传参数个数不同,可以是两个完全不同的方法.如 - (void)addCard:(Card *)card atTop:(BOOL)atTop; - (void)addCard:(Card *)card; 第二个方法可以这样实现 - (void)addCard:(Card *)card{ [self addCard:card atTop:NO];} 2,由于要延用card里面的方法,所以这三个方法要写在.h文件里. - (void)addCard:(Card *)card atTop:(

loj2541 「PKUWC2018」猎人杀

https://loj.ac/problem/2541 自己是有多菜啊,10天前做的题,当时还是看了题解,还让NicoDafaGood同学给我讲了一下. 而我现在忘得一干二净,一点都想不起来了…… 主要是当时听懂了就打了,没有总结啊. 我们发现,我们设集合$A$的$w$之和是$S_A$ 那么一个集合$A$在1之后死的概率是$\frac{w_1}{S_A+w_1}$. 为什么呢. 虽然每次选下一个会死的人,是从没死的人中选,但是实际上,也可以是所有人中选,如果选到了死了的人就继续选. 记得很久以前

【C++】随机重命名MP3文件

新置MP3一件,竟然没有随机播放的功能.坑啊!身为程序媛一枚,自己动手吧~ 获取当前路径: char buf[1000]; GetCurrentDirectory(1000,buf); string cur_folder_file = string(buf)+"\\*.mp3"; 获取当前路径mp3文件列表: void getMp3Names(string filepath,vector<string> &names) { names.clear(); WIN32_

黑马程序员-OC特有语法:分类category,给NSString增加方法计算字符串中数字的个数

1:分类的使用场景:想对一个类,扩充一些功能,而又不改变原来类的模型,也不用继承,这时OC中的特有语法:分类可以做到: 当然分类也是一个类,也需要声明和实现,声明在.h文件中,实现在.m文件中,格式如下 // 声明 @interface  类名  (分类名称) @end // 实现 @implementation 类名 (分类名称) @end 2:分类的好处,当一个类比较庞大时,不同的部分可以放到不同的分类中,也方便团队中类的开发: 3:分类使用注意: a:分类不能增加成员变量,只能对原类增加方