簡體   English   中英

在未排序的數組中配對給定的總和

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM