Open In App

list::begin() and list::end() in C++ STL

Improve
Improve
Like Article
Like
Save
Share
Report

Lists are containers used in C++ to store data in a non-contiguous fashion, Normally, Arrays and Vectors are contiguous in nature, therefore the insertion and deletion operations are costlier as compared to the insertion and deletion option in Lists.

list::begin()

begin() function is used to return an iterator pointing to the first element of the list container. It is different from the front() function because the front function returns a reference to the first element of the container but begin() function returns a bidirectional iterator to the first element of the container.

Syntax:

listname.begin() 
Parameters :
No parameters are passed.
Returns :
This function returns a bidirectional
iterator pointing to the first element.

Examples:  

Input  : mylist{1, 2, 3, 4, 5};
         mylist.begin();
Output : returns an iterator to the element 1

Input  : mylist{8, 7};
         mylist.begin();
Output : returns an iterator to the element 8

Errors and Exceptions
1. It has a no exception throw guarantee. 
2. Shows error when a parameter is passed. 

CPP




// CPP program to illustrate
// Implementation of begin() function
#include <iostream>
#include <list>
using namespace std;
 
int main()
{
    // declaration of list container
    list<int> mylist{ 1, 2, 3, 4, 5 };
 
    // using begin() to print list
    for (auto it = mylist.begin(); it !=
                            mylist.end(); ++it)
        cout << ' ' << *it;
    return 0;
}


Output: 

1 2 3 4 5

Time Complexity: O(1) 

Auxiliary Space: O(n) where n is size of list container

list::end()

end() function is used to return an iterator pointing to the last element of the list container. It is different from the back() function because the back() function returns a reference to the last element of the container but end() function returns a bidirectional iterator to the past the last element of the container.

Syntax: 

listname.end()

Parameters: NA

Return Type: This function returns a bidirectional iterator pointing to the past the last element.

Errors and Exceptions

  • It has a no exception throw guarantee. 
  • Shows error when a parameter is passed.

CPP




// CPP program to illustrate
// Implementation of end() function
 
#include <iostream>
#include <list>
using namespace std;
 
int main()
{
    // declaration of list container
    list<int> mylist{ 1, 2, 3, 4, 5 };
 
    // using end() to print list
    for (auto it = mylist.begin(); it != mylist.end(); ++it)
        cout << ' ' << *it;
    return 0;
}


Output: 

1 2 3 4 5

Time Complexity: O(1) 

Auxiliary Space: O(1)

Let us see the differences in a tabular form is shown below as follows: 

list::begin list::end
It is used to return an iterator pointing to the first element in the list container. It is used to return an iterator referring to the past-the-end element in the list container.

Its syntax is as follows:

iterator begin();

Its syntax is as follows:

iterator end();
It does not take any parameters. It does not take any parameters.
Its complexity is constant. Its complexity is constant.
Its iterator validity does not change. Its iterator validity does not change.


Last Updated : 07 Aug, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads