unordered_map
Use case
finding Frequency of charaters
in a string
or vector
⏩ unordered_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;