Skip to main content

unordered_map

Use case

finding Frequency of charaters in a string or vectorunordered_map

#include <iostream>
#include <vector>
#include <unordered_map>

int main()
{
std::vector<int> v = { 7, 2, 2, 4, 3, 2, 6 };
int val = 2;

std::unordered_map<int, int> freq;

for (int const &i: v) {
freq[i]++;
}

std::cout << "Element " << val << " occurs " << freq[val] << " times";

return 0;
}

// Output is: [ Element 2 occurs 3 times ]

unordered_map based Problems

Frequency of an element

/* Input is:
1 2 3 4 3 2 32 1 4 2
*/

unordered_map<int, int> unmap;
int tmp;
while (cin >> tmp)
{
// ++unmap.at(tmp);
unmap[tmp]++;
}

for (auto el : unmap)
{
cout << el.first << "'s frequency is' " << el.second << endl; // el.second is the frequency of element "el"
}
/*
32's frequency is 1
4's frequency is 2
3's frequency is 2
2's frequency is 3
1's frequency is 2
*/
// 💣💣💣💣TO TRY 💣💣💣💣

unordered_map<int,int> unmap;
for(int i=0 ; i<nums.size() ; i++){
unmap[nums[i]]++;
if(unmap[nums[i]] >= 2) return true;
}
return false;