📖 Scenario: You are managing a list of tasks to do today. Sometimes, you finish the last task and want to remove it from your list.
🎯 Goal: Build a simple program that stores a list of tasks in an array and removes the last task when done.
📋 What You'll Learn
Create an array called tasks with exactly 5 task names as strings
Create an integer variable called size to store the current number of tasks
Write code to remove the last task by decreasing size by 1
Print the tasks remaining in the array after deletion using a for loop
💡 Why This Matters
🌍 Real World
Managing lists like tasks, shopping items, or appointments often requires adding or removing items from the end.
💼 Career
Understanding how to manipulate arrays and track their size is fundamental for software development and data handling.
Progress0 / 4 steps
1
Create the tasks array
Create a string array called tasks with these exact values: "Laundry", "Dishes", "Homework", "Groceries", "Call Mom".
DSA C++
Hint
Use std::string tasks[5] = { ... }; to create the array with exact task names.
2
Set the size variable
Create an integer variable called size and set it to 5 to represent the number of tasks in the array.
DSA C++
Hint
Use int size = 5; to store the number of tasks.
3
Remove the last task
Decrease the value of size by 1 to remove the last task from the list.
DSA C++
Hint
Use size = size - 1; to reduce the number of tasks by one.
4
Print remaining tasks
Use a for loop with int i = 0 to i < size to print each task in tasks on its own line.
DSA C++
Hint
Use for (int i = 0; i < size; i++) and std::cout << tasks[i] << std::endl; to print tasks.
Practice
(1/5)
1. What happens to the size of an array when you delete an element from the end in a dynamic array?
easy
A. The size decreases by one
B. The size remains the same
C. The size increases by one
D. The size becomes zero
Solution
Step 1: Understand dynamic array size behavior
When an element is deleted from the end, the array size reduces by one because one element is removed.
Step 2: Confirm size change after deletion
Deleting from the end does not affect other elements, only reduces size by one.
Final Answer:
The size decreases by one -> Option A
Quick Check:
Size after deletion = original size - 1 [OK]
Hint: Deleting at end reduces size by one [OK]
Common Mistakes:
Thinking size remains same after deletion
Assuming size increases after deletion
Confusing deletion at end with deletion at start
2. Which of the following is the correct syntax to delete the last element from a vector named vec in C++?
easy
A. vec.erase_end();
B. vec.delete_last();
C. vec.remove_end();
D. vec.pop_back();
Solution
Step 1: Recall vector deletion syntax
The standard method to remove the last element from a vector in C++ is pop_back().
Step 2: Verify other options
Other methods like delete_last(), remove_end(), and erase_end() do not exist in C++ STL vector.
Final Answer:
vec.pop_back(); -> Option D
Quick Check:
Use pop_back() to delete last element [OK]
Hint: Use pop_back() to remove last element in vector [OK]
Common Mistakes:
Using non-existent methods like delete_last()
Confusing erase() with erase_end()
Trying to use remove_end() which is invalid
3. What will be the output of the following C++ code?
std::vector<int> v = {10, 20, 30, 40};
v.pop_back();
for(int x : v) std::cout << x << " ";
medium
A. 10 20 30 40
B. 20 30 40
C. 10 20 30
D. 10 20 40
Solution
Step 1: Understand pop_back effect on vector
pop_back() removes the last element, which is 40 in this vector.
Step 2: Print remaining elements
After removal, vector contains 10, 20, 30. Loop prints these with spaces.
Final Answer:
10 20 30 -> Option C
Quick Check:
Last element removed, output = 10 20 30 [OK]
Hint: pop_back() removes last element before printing [OK]
Common Mistakes:
Printing original vector without deletion
Confusing which element is removed
Forgetting pop_back() modifies vector
4. Identify the error in the following code that attempts to delete the last element of an array:
int arr[3] = {1, 2, 3};
arr.pop_back();
medium
A. pop_back() deletes first element, not last
B. pop_back() is not a member of built-in arrays
C. Array size is zero, cannot delete
D. No error, code is correct
Solution
Step 1: Check array type and methods
Built-in arrays in C++ do not have member functions like pop_back().
Step 2: Understand correct usage
pop_back() is a method of std::vector, not raw arrays.
Final Answer:
pop_back() is not a member of built-in arrays -> Option B
Quick Check:
pop_back() only works with vectors, not arrays [OK]
Hint: pop_back() works only on vectors, not raw arrays [OK]
Common Mistakes:
Assuming pop_back() works on raw arrays
Ignoring that arrays have fixed size
Thinking pop_back() deletes first element
5. You have a vector v with elements {5, 10, 15, 20, 25}. You want to delete the last two elements and then print the vector. Which code snippet correctly does this?
hard
A. v.erase(v.end()-2, v.end()); for(auto x : v) std::cout << x << ' ';
B. v.pop_back(); for(auto x : v) std::cout << x << ' ';
C. v.remove_end(); v.remove_end(); for(auto x : v) std::cout << x << ' ';
D. v.pop_back(2); for(auto x : v) std::cout << x << ' ';
Solution
Step 1: Understand methods to delete multiple elements
pop_back() removes only one element at a time. To remove two, it must be called twice. erase() can remove a range efficiently.
Step 2: Analyze the snippets
The snippet v.erase(v.end()-2, v.end()); for(auto x : v) std::cout << x << ' '; correctly removes the last two elements. The snippet with a single v.pop_back(); removes only one element. remove_end() does not exist. pop_back(2) uses invalid syntax.
Final Answer:
v.erase(v.end()-2, v.end()); for(auto x : v) std::cout << x << ' '; -> Option A
Quick Check:
erase() with range removes last two elements efficiently [OK]
Hint: Use erase(end()-2, end()) to delete last two elements [OK]
Common Mistakes:
Using pop_back() only once instead of twice
Using non-existent remove_end() method
Not knowing erase() can remove ranges
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.