相关疑难解决方法(0)

重写System.Object.GetHashCode的最佳算法是什么?

在.NET GetHashCode方法中,很多地方都使用.NET 方法.特别是在快速查找集合中的项目或确定相等性时.是否有关于如何GetHashCode为我的自定义类实现覆盖的标准算法/最佳实践,因此我不会降低性能?

.net algorithm hashcode gethashcode

1389
推荐指数
14
解决办法
19万
查看次数

以唯一且确定的方式将两个整数映射到一个整数

想象一下两个正整数A和B.我想将这两个整数组合成一个整数C.

可能没有其他整数D和E组合为C.因此将它们与加法运算符组合不起作用.例如30 + 10 = 40 = 40 + 0 = 39 + 1连接也不起作用.例如"31"+"2"= 312 ="3"+"12"

这种组合操作也应该是确定性的(总是在相同的输入下产生相同的结果)并且应该总是在整数的正侧或负侧产生整数.

mapping algorithm math integer deterministic

218
推荐指数
8
解决办法
9万
查看次数

创建两个数字的哈希码

我正在尝试为(a + b)C#中的复数类创建快速哈希码函数.

我反复看过这个a.GetHashcode()^b.GetHashCode()方法.但是,这将给予相同的哈希码(a,b)(b,a).

是否有任何标准算法来执行此操作,.Net框架中是否有任何功能可以帮助您?

.net algorithm

62
推荐指数
5
解决办法
3万
查看次数

调用 'unordered_set< vector<int> >' 隐式删除的默认构造函数

似乎当我尝试定义向量的 unordered_set 时,我收到一条错误消息:“调用隐式删除的默认构造函数unordered_set< vector<int> >。” 当我定义常规(有序)集时不会发生这种情况:set< vector<int> >。似乎我需要定义hash<vector<int>>才能摆脱错误。

有谁知道为什么我只有在使用时才会收到此错误unordered_set?不应该两个数据结构都使用散列,那么为什么 unordered_set 需要自定义散列函数?事实上,常规(有序)不应该也set需要一些自定义的比较器来对vector<int>数据结构进行排序吗?

c++ hash set unordered-set

9
推荐指数
2
解决办法
9615
查看次数

检查可变集是否包含具有相同属性的对象

我想要做的是创建一个NSMutableSet,其目的是计算有多少对唯一数据.

基本上,我有两个可变数组; xCoordinatesyCoordinates,以及一个名为的自定义对象XYPoint.重合索引处的每个X坐标和Y坐标组合在笛卡尔平面上形成一个点.例如,在索引2处,xCoordinates数组中可能存在数字4,而yCoordinates数组中可能存在数字8,从而形成点(4,8).

现在,问题的关键,我想要做的是检查有多少独特的点.我打算用一个NSMutableSet来做.即:

for (int i = 0; i < [xCoordinates count]; i++) {

        XYPoint *newXY = [[XYPoint alloc] init];
        newXY.xCoordinate = [xCoordinates objectAtIndex:i];
        newXY.yCoordinate = [yCoordinates objectAtIndex:i];

        if ([distinct containsObject:newXY] == NO) {

            [distinct addObject:newXY];

        }

    }
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不起作用.有没有办法说;

if (there isn't an object in the set with an identical X coordinate property and Y coordinate property){

    Add one to the set;

}
Run Code Online (Sandbox Code Playgroud)

objective-c

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