目标C中的CLIST

| 我有cpp代码,其中将struct对象放入ѭ0中。我正在将此代码移植到目标C中。 CLIST类似于具有
.RemoveAt
.GetAt
.InsertBefore
.GetNext
.GetHeadPosition
函数的双向链表。
Objective C
中的实现方法。 我是否需要在目标C中实现双向链接列表?是否有其他预定义的方法可以使用它。     
已邀请:
CLIST大概是循环的吗?因此,
GetHeadPosition
? 在任何情况下,ѭ8C(或者是
NSMutableArray
,因为您要插入)在正常情况下都是将有序列表保留在Objective-C中的方法。 对于
RemoveAt
,请使用
removeObjectAtIndex:
。对于
GetAt
,请使用
objectAtIndex:
。对于14英镑,您可能想要写一些类似的东西:
- (void)insert:(id)objectToInsert before:(id)referenceObject
{
    int index = [array indexOfObject:referenceObject];

    if(index == NSNotFound) return; // or whatever you\'d expect. 
                                    // Maybe object is just inserted at the end?

    index = index - 1;
    if(index < 0) index = [array count];
    [array insertObject:objectToInsert atIndex:index];
}
(这在NSArray类别中可能会更好,但是您明白了) 对于
GetNext
GetHeadPosition
,您可能希望将数组位置保留在单独的变量中。因此对于GetNext:
arrayPosition = (arrayPosition + 1)%[array count];
return [array objectAtIndex:arrayPosition];
对于GetHeadPosition,只需:
return arrayPosition;
编辑:对于通过NSArray进行迭代,最简单的方法实际上是忽略任何显式的内容,而只需使用:
for(ObjectType *object in array)
{
     /* do something with object */
}
通常,这意味着您实际上并不需要GetNext的类似物,但是您无法在该循环中更改数组,因此它并不总是可用的。     

要回复问题请先登录注册