list::begin() and list::end() in C++ STL
Last Updated : 07 Aug, 2022
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. |
Explore
C++ Basics
Core Concepts
OOP in C++
Standard Template Library(STL)
Practice & Problems
My Profile