当C++遇到iOS应用开发—Dict集合

在Object-c中,字典(KEY/VALUE)使用NSDictionary 和NSMutableDictionary(可变长)。使用语法如下: NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@”value1″,@”key1″,@”value2″,@”key1″,nil];

在Object-c中,字典(KEY/VALUE)使用NSDictionary 和NSMutableDictionary(可变长)。使用语法如下:

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@”value1 “,@”key1 “,@”value2 “,@”key1 “,nil];//注意用nil结束

取元素的方法:

NSString *value = [myDictionary objectForKey:@”key1 “];

该写法过于繁复。所以我将C++中的map类进行了封装:

ifndef Discuz2_Maps_h

define Discuz2_Maps_h

include

大家看到,这里使用的定义比较器的方式来指定当KEY的类型是NSString时的比较方式。而这样做的原因是当查找某KEY(NSString类型) 时,这时在map比较器中的数据会出现字符长度变长的情况,且变长的那部分内容为乱码。这会造成查不到相应的结果。当然这样做会不会造成性能上的损失,目 前还没测试过。感兴趣的朋友可以帮助测试一下。

下面来看一下具体用法。

实例化对象并添加数据:

Dict

或用下面方式:

NSArray *array = [[NSArray alloc] initWithObjects:
@”One “, @”1 “, @”Two “, @”2 “, @”Three “, @”3 “, @”Four “, @”4 “,nil];
Dict

判断是否存在某数据:

BOOL iscontains = dict.contains(@”代震军3 “);

获取记录条数:

int size = dictBatch.size();

遍历:

for(std::map

或使用foreach:

__block NSString* str;
for_each(dict.begin(), dict.end(), ^(std::pair

获取指定索引记录:

NSString* result = dict[@”代震军2 “];

代码比较简单,就不多做解释了,呵呵。

好了,今天的内容就先到这里了。

原文链接:http://www.cnblogs.com/daizhj/archive/2012/11/09/2762753.html

作者: daizhj, 代震军
微博: http://weibo.com/daizhj
Tags:ios, c++, NSDictionary, NSMutableDictionary, map

Original: https://www.cnblogs.com/daizhj/archive/2012/11/09/map-ios-objectc.html
Author: 代震军
Title: 当C++遇到iOS应用开发—Dict集合

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/536307/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球