3. What will be the output of the following C++ code?
std::queue<int> q;
q.push(10);
q.push(20);
q.push(30);
int x = q.front();
q.pop();
int y = q.front();
std::cout << x << " " << y << std::endl;
medium
A. 10 20
B. 20 30
C. 30 20
D. 10 30
Solution
Step 1: Trace queue operations
Elements pushed in order: 10, 20, 30. Front is 10 initially.
Step 2: After pop and front calls
After q.pop(), 10 is removed. New front is 20. So x=10, y=20.
Final Answer:
10 20 -> Option A
Quick Check:
First out is 10, next front is 20 [OK]
Hint: front() shows first element; pop() removes it [OK]
Common Mistakes:
Assuming pop() returns value
Mixing front() and back() values
Confusing order of elements
4. Identify the error in the following C++ code snippet using queue:
std::queue<int> q;
q.push(5);
q.pop();
int val = q.front();
std::cout << val << std::endl;
medium
A. Accessing front() on an empty queue causes undefined behavior
B. pop() does not remove element from queue
C. push() is used incorrectly
D. Missing include for queue header
Solution
Step 1: Analyze queue state after operations
After push(5), queue has one element. pop() removes it, queue becomes empty.
Step 2: Check front() call on empty queue
Calling front() on empty queue is undefined and causes runtime error.
Final Answer:
Accessing front() on an empty queue causes undefined behavior -> Option A
Quick Check:
front() on empty queue = error [OK]
Hint: Never call front() if queue might be empty [OK]
Common Mistakes:
Ignoring empty queue before front()
Thinking pop() returns value
Assuming push() syntax is wrong
5. You have a queue with elements 1, 2, 3, 4 (front to back). You perform these operations: q.pop(); q.push(5); q.pop(); q.push(6); What is the final order of elements in the queue from front to back?