C++ List
In C++, a list is a sequence container that allows non-contiguous memory allocation. Lists are part of the Standard Template Library (STL) and provide a way to store elements in a doubly linked list format, allowing for efficient insertion and deletion of elements.
Key Topics
Overview of Lists
Lists provide several advantages:
- Efficient insertions and deletions from both ends.
- Elements can be added or removed without reallocating the entire list.
- Supports bidirectional iteration.
Declaring Lists
To declare a list, include the list header and use the following syntax:
#include 
list myList; 
Common List Operations
Here are some common operations you can perform on lists:
- push_back(): Adds an element to the end of the list.
- push_front(): Adds an element to the front of the list.
- pop_back(): Removes the last element from the list.
- pop_front(): Removes the first element from the list.
- size(): Returns the number of elements in the list.
- clear(): Removes all elements from the list.
Example: Basic List Operations
#include 
#include 
using namespace std;
int main() {
    list myList;
    myList.push_back(10);
    myList.push_front(20);
    myList.push_back(30);
    cout << "List size: " << myList.size() << endl;
    myList.pop_front();
    cout << "List size after pop_front: " << myList.size() << endl;
    myList.clear();
    cout << "List size after clear: " << myList.size() << endl;
    return 0;
} 
 Output:
                        List size: 3
                        List size after pop_front: 2
                        List size after clear: 0
                    
                Iterating Over Lists
You can iterate over the elements of a list using an iterator or a range-based for loop.
Example: Iterating with a Range-Based For Loop
#include 
#include 
using namespace std;
int main() {
    list myList = {10, 20, 30, 40, 50};
    cout << "List elements: ";
    for (int num : myList) {
        cout << num << " ";
    }
    return 0;
} 
 Output:
                        List elements: 10 20 30 40 50
                    
                Example: Iterating with Iterators
#include 
#include 
using namespace std;
int main() {
    list myList = {10, 20, 30, 40, 50};
    cout << "List elements using iterators: ";
    for (auto it = myList.begin(); it != myList.end(); ++it) {
        cout << *it << " ";
    }
    return 0;
} 
 Output:
                        List elements using iterators: 10 20 30 40 50
                    
                Exercises with Lists
Here are some exercises to practice your understanding of lists:
- Create a list of strings and store names. Print each name using a range-based for loop.
- Write a program that reads integers from the user and stores them in a list until the user enters -1. Then, print the sum of the entered integers.
- Implement a function that takes a list and returns the maximum element.
Key Takeaways
- Lists are sequence containers that allow efficient insertions and deletions.
- Lists are implemented as doubly linked lists, providing bidirectional iteration.
- Common operations include adding, removing, and accessing elements, as well as checking the size of the list.
- Practice exercises can help solidify your understanding of how to use lists effectively in C++.