如何在C++数组中使用字符串索引(类似于PHP)?
std::map
是一种选择,但为了达到与数组索引使用同样的效果,我认为使用std::unordered_map
可能更好。因为对于具有字符串类型的key_type
的std::map
的性能可能非常糟糕。由于在最坏情况下比较两个字符串需要O(string::size())
时间。因此,如果索引字符串非常长且相似,并且它们的数量太大,那么使用std::map
是不现实的。而且我有一些更好的实现方式,但我不确定它们是否可行(尤其是第二种方法)。
string_view
替代字符串。这个功能通常称为Map。
如果您已经使用Boost,可以使用它们的Maps,否则您必须三思而后行 :) 好吧,如果不是Dimtry - std::map就是您需要的。