0
0
CppConceptBeginner · 3 min read

What is list in C++: Explanation and Example

In C++, a list is a container from the Standard Template Library (STL) that stores elements in a doubly linked list structure. It allows fast insertion and deletion anywhere in the sequence but does not support random access like arrays or vectors.
⚙️

How It Works

A list in C++ works like a chain of connected boxes, where each box holds a value and links to the box before and after it. This is called a doubly linked list. Because of these links, you can easily add or remove boxes anywhere in the chain without moving the others.

Think of it like a train where each carriage knows the one before and after it. If you want to add a new carriage in the middle, you just connect it to the neighboring carriages without rearranging the whole train. However, if you want to find a carriage by its position, you have to start from the front and move step by step, because the list does not support jumping directly to a position.

💻

Example

This example shows how to create a list, add elements, and print them in order.

cpp
#include <iostream>
#include <list>

int main() {
    std::list<int> numbers;  // Create an empty list

    // Add elements to the list
    numbers.push_back(10);
    numbers.push_back(20);
    numbers.push_front(5);

    // Print all elements
    for (int num : numbers) {
        std::cout << num << " ";
    }
    std::cout << std::endl;

    return 0;
}
Output
5 10 20
🎯

When to Use

Use a list when you need to frequently add or remove elements from the middle or ends of a sequence and don't need to access elements by index quickly. It is useful in situations like managing a playlist where songs can be inserted or removed anywhere, or in simulations where objects are dynamically added and removed.

However, if you need fast access to elements by position, a vector or array is better because list requires stepping through elements one by one.

Key Points

  • List is a doubly linked list container in C++ STL.
  • It allows fast insertion and deletion anywhere in the list.
  • It does not support fast random access by index.
  • Useful when frequent insertions/removals happen in the middle.
  • Traversal is done by moving from one element to the next sequentially.

Key Takeaways

C++ list stores elements in a doubly linked list for efficient insertions and deletions.
It is not suitable for fast random access by position.
Use list when you need to add or remove elements frequently in the middle of a sequence.
Traversal requires moving step-by-step through elements.
For fast indexed access, prefer vector over list.