[英]Pair within an unsorted Array for a given Sum
這里它使用unordered_map
作為哈希表概念,但是我不確定它是如何做到的,甚至沒有將item插入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]]++;
}
}
您能給我一些見識嗎,它是如何插入的以及為什么它會增加該值的計數?
該映射計數未排序數組中每個元素出現的次數。 默認情況下,如果您寫
umap[key]
並且key
不在umap
,它將key
插入到umap
,默認值為0
。 然后,它返回對密鑰在地圖中存儲位置的引用。
這意味着對於arr[i]
給定的新鍵,當您調用umap[arr[i]]
時,該鍵會插入到映射中,然后該值將遞增,以便映射為該鍵注冊一個計數1
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.