# Frequency of each character in a String using unordered_map in C++

• Difficulty Level : Medium
• Last Updated : 26 Oct, 2020

Given a string str, the task is to find the frequency of each character of a string using an unordered_map in C++ STL.

Examples:

Input: str = “geeksforgeeks”
Output:
r 1
e 4
s 2
g 2
k 2
f 1
o 1

Input: str = “programming”
Output:
n 1
i 1
p 1
o 1
r 2
a 1
g 2
m 2

Approach:

1. Traverse each character of the given string str.
2. Check whether the current character is present in unordered_map or not.
3. If it is present, then update the frequency of the current characters else insert the characters with frequency 1 as shown below:
```if(M.find(s[i])==M.end()) {
M.insert(make_pair{s[i], 1});
}
else {
M[s[i]]++;
}
```

4. Traverse the unordered_map and print the frequency of each characters stored as a mapped value.

Below is the implementation of the above approach:

## CPP

 `// C++ program for the above approach` `#include ` `using` `namespace` `std;`   `void` `printFrequency(string str)` `{` `    ``// Define an unordered_map` `    ``unordered_map<``char``, ``int``> M;`   `    ``// Traverse string str check if` `    ``// current character is present` `    ``// or not` `    ``for` `(``int` `i = 0; str[i]; i++) ` `    ``{` `        ``// If the current characters` `        ``// is not found then insert` `        ``// current characters with` `        ``// frequency 1` `        ``if` `(M.find(str[i]) == M.end()) ` `        ``{` `            ``M.insert(make_pair(str[i], 1));` `        ``}`   `        ``// Else update the frequency` `        ``else` `        ``{` `            ``M[str[i]]++;` `        ``}` `    ``}`   `    ``// Traverse the map to print the` `    ``// frequency` `    ``for` `(``auto``& it : M) {` `        ``cout << it.first << ``' '` `<< it.second << ``'\n'``;` `    ``}` `}`   `// Driver Code` `int` `main()` `{` `    ``string str = ``"geeksforgeeks"``;`   `    ``// Function call` `    ``printFrequency(str);` `    ``return` `0;` `}`

Output

```r 1
e 4
s 2
g 2
k 2
f 1
o 1
```

My Personal Notes arrow_drop_up
Recommended Articles
Page :