gpt4 book ai didi

ethereum - Solidity中的HashSet数据结构

转载 作者:行者123 更新时间:2023-12-05 02:52:42 25 4
gpt4 key购买 nike

是否有任何方法可以在 Solidity 中实现一个集合,以检查元素是否存在,平均 O(1)?我一直在考虑使用没有值的映射对象,这是否比使用数组并迭代以查找元素更快?

最佳答案

是的,就速度而言,您最好使用映射。对我们来说,最接近集合的东西是映射和数组。但是当你想删除一个元素时,迭代的成本非常高。

映射示例

mapping (address => bool) yourMapping; // maps address (key) to boolean (value)

树立榜样

contract Contract {

struct Set {
uint[] values;
mapping (uint => bool) is_in;
}

Set my_set;

function add(uint a) public {
if (!my_set.is_in[a]) {
my_set.values.push(a);
my_set.is_in[a] = true;
}
}
}

关于ethereum - Solidity中的HashSet数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62525758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com