This quiz tests your knowledge of C++ Unordered Map container and its associated operations. It contains 10 MCQs.
Question 1
What is a potential performance issue with unordered_map if a poor hash function is used?
Memory fragmentation.
Increased cache misses.
Performance degrades towards O(n) for lookups.
Increased collisions and slower lookups.
Question 2
What is the average time complexity for inserting a new element into a unordered_map?
O(n)
O(log n)
O(1)
O(n log n)
Question 3
What is the output of the program:
#include <bits/stdc++.h>
using namespace std;
int main()
{
unordered_map<int, int> m = {{1, 10}, {2, 20}};
auto it = m.find(1);
m.erase(it);
cout << it->second;
return 0;
}
10
20
Undefined behavior
Compilation error
Question 4
How do at() and operator[] differ for missing keys?
at() throws exception; operator[] inserts
Both insert a default value
operator[] throws; at() inserts
Both throw exceptions
Question 5
What is the output of the program:
#include <bits/stdc++.h>
using namespace std;
int main()
{
unordered_map<int, int> m = {{1, 10}, {2, 20}};
m.clear();
cout << m.size() << " " << m[1];
}
0 garbage value
0 0
0 1
Error
Question 6
#include <bits/stdc++.h>
using namespace std;
int main() {
unordered_map<string, int> mp;
mp["abc"] = 1;
mp["xy"] = 2;
mp["pqr"] = 3;
auto it = mp.find("xy");
it++;
if(it != mp.end())
cout << it->first << " " << it->second;
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int main()
{
unordered_map<string, int> mp;
mp["abc"] = 1;
mp["xy"] = 2;
mp["pqr"] = 3;
auto it = mp.find("xy");
it++;
if (it != mp.end())
cout << it->first << " " << it->second;
return 0;
}
print any pair of map except ("xy", 2) this pair.
3 pqr
Garvage values
Error
Question 7
What is the output of the program:
#include <bits/stdc++.h>
using namespace std;
int main()
{
unordered_map<int, string> myMap;
myMap[1] = "one";
myMap[2] = "two";
cout << myMap[3] << endl;
return 0;
}
An empty string
"two"
undefined behavior
Error
Question 8
Merge two unordered map:
#include <bits/stdc++.h>
using namespace std;
int main()
{
unordered_map<int, string> map1 = {{1, "a"}, {2, "b"}};
unordered_map<int, string> map2 = {{4, "x"}, {3, "y"}};
map1.merge(map2);
}
map1 contains {1:"a", 2:"b", 3:"y", 4:"x"}, map2 is empty
map1 contains {1:"a", 2:"b", 3:"y"}, map2 has {2:"x"}
map1 remains unchanged
Compilation error
Question 9
Does std::unordered_map guarantee any specific order for its elements?
No, the order is unspecified.
Yes, elements are sorted by key.
Yes, elements are stored in insertion order.
Yes, elements are stored in a random order.
Question 10
If you insert a key that already exists in a unordered_map, what happens?
The program crashes.
Nothing happens; the insertion is ignored.
The old value is replaced with the new value.
The existing key-value pair is updated with the new value.
There are 10 questions to complete.