小编Ric*_*man的帖子

检查两个数组是否具有相同成员的最佳方法

我有一个字符串数组,我需要将其与另一个字符串数组进行比较,但它们的顺序可能不同。比较两个数组的最佳方法是什么?

这就是我到目前为止所拥有的,只是想知道我是否缺少一种更简单/更有效的方法。

func unorderedEqual(first, second []string) bool {
    if len(first) != len(second) {
        return false
    }
    for _, value := range first {
        if !contains(value, second) {
            return false
        }
    }
    return true
}

func contains(needle string, haystack []string) bool {
    for _, matchValue := range haystack {
        if matchValue == needle {
            return true
        }
    }
    return false
}
Run Code Online (Sandbox Code Playgroud)

arrays go

2
推荐指数
1
解决办法
1万
查看次数

切割排序切片的最佳方法

我想在指定值之前剪切一个整数数组,并返回一个包含这些值的数组和数组中的其余值.我们可以假设数组已排序.这是我到目前为止:

func cutIntArrBefore(arr1 []int, n int) ([]int, []int) {
    arr2 := make([]int, 0, len(arr1))
    sliceIndex := 0


    for i, num := range arr1 {
        if num < n {
            arr2 = append(arr2, num)
            sliceIndex = i
        }
    }

    sliceIndex = sliceIndex + 1
    if sliceIndex >= len(arr1) {
        return arr2, nil
    } else {
        arr1 := arr1[sliceIndex:]   
        return arr2, arr1
    }
}
Run Code Online (Sandbox Code Playgroud)

测试代码:

func main() {
    var arr1, arr2, arr3 []int
    arr1 = []int{1,2,3,4,5,6,7,8}
    arr2, arr3 = cutIntArrBefore(arr1, 5)
    fmt.Printf("(%+v) …
Run Code Online (Sandbox Code Playgroud)

arrays go

2
推荐指数
1
解决办法
69
查看次数

在定义结构之前引用结构中的类型

我正在寻找一种做这样的事情的好方法:

typedef struct user
{
  unsigned long id;
  //userList defined below
  userList friends;
}

typedef struct
{
  //userList contains users
  user * list;
  int count;
} userList;
Run Code Online (Sandbox Code Playgroud)

有没有合法的方法来做到这一点或类似的东西?

c

1
推荐指数
1
解决办法
716
查看次数

componentsSeparatedByCharactersInSet给了我一堆空字符串

好的,首先,我使用GNUStep作为学习Objective-C的方法,因此GNU和Apple实现之间可能存在一些差异.话虽如此,它不应该影响我的问题.

无论如何,要了解我的难题,请将以下代码解析到您的视觉容器中:

#import <Cocoa/Cocoa.h>
int main()
{
  NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
  NSEnumerator * LineEnumerator = [[NSArray arrayWithObjects: @"Jim     1", @"Steve   3", nil] objectEnumerator];
  NSString * s;
  while((s = [LineEnumerator nextObject]))
  {
    NSArray * parts = [s componentsSeparatedByCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
    NSLog(@"%@", parts);
  }
  [pool drain];
  return NO;
}
Run Code Online (Sandbox Code Playgroud)

以下输出:

2010-10-07 10:03:50.809 a.out[24512] (Jim, "", "", "", "", 1)
2010-10-07 10:03:50.812 a.out[24512] (Steve, "", "", 3)
Run Code Online (Sandbox Code Playgroud)

我的预期输出是:

2010-10-07 10:03:50.809 a.out[24512] (Jim, 1)
2010-10-07 10:03:50.812 a.out[24512] (Steve, 3)
Run Code Online (Sandbox Code Playgroud)

但componentsSeparatedByCharactersInSet似乎是唯一接近我正在寻找的方法(顺便说一下,我想为任何空格,制表符或其他空白字符的混合做好准备).在没有编写新方法的情况下,是否有一种简单的方法可以使用标准库?

objective-c

1
推荐指数
1
解决办法
3308
查看次数

标签 统计

arrays ×2

go ×2

c ×1

objective-c ×1