我正在使用C ++,但这个问题是关于解决特定问题的算法或技巧。
假设您有一个哈希表,例如C ++中的map<std::string, int>
。所以,关键是许多其他字符串的组合。就我而言,我必须根据以下内容存储优先级:源MAC地址,目标MAC地址和数据包类型。此外,还有两个可选字符串:源IP地址和目标IP。我必须将这些字符串连接起来(并用&#34; _&#34;分隔)作为哈希表键。
我只为示例采用一些字符串,以便向您显示问题:mac_source = "EE:EE:EE:EE:EE:EE", mac_destination = "FF:FF:FF:FF:FF:FF", ip_source = "127.0.0.1", ethertype="ip" and id_destination = "120.110.25.1"
。所以我的地图键将是这些字符串的串联:"EE:EE:EE:EE:EE:EE_FF:FF:FF:FF:FF:FF_ip_127.0.0.1_120.110.25.1"
。
所以,我的问题是:如何避免将这些大字符串作为地图密钥进行处理,因为知道该程序的另一部分将以与它们存储相同的方式访问这些字符串的结构?
谢谢!