std::unordered_map(无序映射容器)
简单介绍:用于存储键值和映射值组合而成的元素,键值和映射值的类型可以不相同,存储数据是不按照键值或映射值的任何顺序存储,根据它们的散列值组织成桶以允许通过它们的键值直接快速访问单个元素(具有常数平均时间复杂度)。
优点:可以通过键值快速检索各个元素,达到更快的访问
缺点:对其元素的子集进行范围迭代效率较低。
typedef std::unordered_map<std::string, int> String2IntMap;
static String2IntMap sMapping;
static int sNextId = 1000;
static int string2Int(const std::string& str) {
String2IntMap::iterator it = sMapping.find(str);
if (it != sMapping.end()) {
return it->second;
}
int allocatedId = sNextId;
sMapping[str] = allocatedId;
sNextId++;
return allocatedId;
}