这里它使用unordered_map
作为哈希表的概念,但是我不确定在没有将项目插入undered_map
的键值对中的情况下如何实现。
这是用于在未排序数组中查找对的代码。 这里它对其他所有元素都使用哈希表概念。
void findPair(int arr[],int n,int x)
{
unordered_map<int,int> umap;
for(int i=0;i<n;i++)
{
int temp=x-arr[i];
if(umap.find(temp)!=umap.end())
{
int count=umap[temp];
for(int j=0;j<count;j++)
cout<<arr[i]<<" "<<temp<<"\n";
}
umap[arr[i]]++;
}
}
能否请您给我一些见解,它是如何插入的以及为什么它会增加该值的计数?
答案 0 :(得分:1)
该映射计数未排序数组中每个元素出现的次数。默认情况下,如果您写
umap[key]
并且key
不在umap
中,它将key
插入默认值umap
的{{1}}中。然后,它返回对密钥在地图中存储位置的引用。
这意味着对于0
给定的新键,当您调用arr[i]
时,该键将插入到映射中,然后该值递增,以便映射记录{ 1}}。