将pair作为unordered_map的key,需要重写hash
struct pair_hash{
template<class T1,class T2>
size_t operator()(const pair<T1,T2> &pair) const{
return hash<T1>()(pair.first)^hash<T2>()(pair.second);
}
};
unordered_map<pair<string,string>,bool,pair_hash> tempMap;
使用unordered_map需要注意
Count函数
size_type count ( const key_type& key ) const
count函数用以统计key值在unordered_map中出现的次数。实际上,c++ unordered_map不允许有重复的key。因此,如果key存在,则count返回1,如果不存在,则count返回0.
//出现则返回1,否则返回0
if(tempMap.count(pair(s1,s2)))
return tempMap[make_pair(s1,s2)];
//此方法检查key-value,若目前key不存在,则会在判断完之后加入tempMap[pair(s1,s2]=false,使得size加一
if(tempMap[pair(s1,s2]==true)
return true;