Ethereum HashSet数据结构的稳固性
是否有任何方法可以实现一个稳定的集合,以检查元素是否存在,O(1)平均值?我一直在考虑使用一个没有值的映射对象,这比使用数组和迭代来查找元素快吗?是的,从速度的角度看,使用映射更好。对于我们来说,最接近于一个集合的实体是一个映射和一个数组。但是,当您想要删除一个元素时,迭代的代价会很高 映射示例Ethereum HashSet数据结构的稳固性,ethereum,solidity,Ethereum,Solidity,是否有任何方法可以实现一个稳定的集合,以检查元素是否存在,O(1)平均值?我一直在考虑使用一个没有值的映射对象,这比使用数组和迭代来查找元素快吗?是的,从速度的角度看,使用映射更好。对于我们来说,最接近于一个集合的实体是一个映射和一个数组。但是,当您想要删除一个元素时,迭代的代价会很高 映射示例 mapping (address => bool) yourMapping; // maps address (key) to boolean (value) 以身作则 contract Con
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;
}
}
}