繁体   English   中英

哈希表,其中键是字符串,值是c ++中的函数

[英]Hash table where key is string and value is function in c++

是否有可能有一个hash实现,其中key是String ,value是function 对于后台,我有一个程序,其中有很多字符串比较,即

if(strcasecmp(s,"london")==0) 
   functionA();  
else if(strcasecmp(s,"moscow")==0)
   functionB();  
else if(strcasecmp(s,"delhi")==0)  
   functionC();  
  ...  

等等。

但是这种实现非常昂贵(theta(n)) ,因为对所有if语句进行了String比较。 如果我们有一个哈希实现,其中key是String ,value是function ,我们可以调用类似的东西

function = hash.Get("moscow");    
function(); 

它的复杂性很好(theta(log(1)))

是否有可能做到这一点?

是否有可能有哈希的实现,其中键是字符串,值是函数?

是。 这是完全可行的。 您可以使用指针函数或std::function 可能的容器可能是:

  1. 的std :: unordered_map
  2. 提高:: unordered_map

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM