int main() { auto n=0, sockNumber=0, pairs=0; unordered_map<int, int> numberOfPairs; cin >> n; for(int i=0; i<n; ++i) { cin >> sockNumber; numberOfPairs.insert({sockNumber, 0}); // >>>>>> HERE <<<<<< numberOfPairs.at(sockNumber) += 1; if(numberOfPairs.at(sockNumber) % 2 == 0) { pairs += 1; } } cout << pairs; return 0; } This code counts the number of pairs in the given input and prints it. I want to know how the insert method of an unordered_map works. Every time I see a number, I've inserted it with a value '0'.
Does the insert method skip inserting the value '0' when it sees the same number again? How does it work?
Input -
9
10 20 20 10 10 30 50 10 20
Output -
3