Iterators in C++ STL

06 Jul, 2022
Prerequisite : Introduction to IteratorsIterators are used to point at the memory addresses of STL containers. They are primarily used in sequences of numbers, characters etc. They reduce the complexity and execution time of the program.
Operations of iterators :-
Chapters
descriptions off, selected
captions settings, opens captions settings dialog
captions off, selected
English
This is a modal window.
Beginning of dialog window. Escape will cancel and close the window.
End of dialog window.
1. begin() :- This function is used to return the beginning position of the container.
2. end() :- This function is used to return the after end position of the container.
// C++ code to demonstrate the working of// iterator, begin() and end()#include<iostream>#include<iterator> // for iterators#include<vector> // for vectorsusing namespace std;int main(){    vector<int> ar = { 1, 2, 3, 4, 5 };          // Declaring iterator to a vector    vector<int>::iterator ptr;          // Displaying vector elements using begin() and end()    cout << "The vector elements are : ";    for (ptr = ar.begin(); ptr < ar.end(); ptr++)        cout << *ptr << " ";          return 0;    }
Output:
The vector elements are : 1 2 3 4 5 

3. advance() :- This function is used to increment the iterator position till the specified number mentioned in its arguments.
// C++ code to demonstrate the working of// advance()#include<iostream>#include<iterator> // for iterators#include<vector> // for vectorsusing namespace std;int main(){    vector<int> ar = { 1, 2, 3, 4, 5 };          // Declaring iterator to a vector    vector<int>::iterator ptr = ar.begin();          // Using advance() to increment iterator position    // points to 4    advance(ptr, 3);          // Displaying iterator position    cout << "The position of iterator after advancing is : ";    cout << *ptr << " ";          return 0;      }
Output:
The position of iterator after advancing is : 4 

4. next() :- This function returns the new iterator that the iterator would point after advancing the positions mentioned in its arguments.
5. prev() :- This function returns the new iterator that the iterator would point after decrementing the positions mentioned in its arguments.
// C++ code to demonstrate the working of// next() and prev() #include<iostream>#include<iterator> // for iterators#include<vector> // for vectorsusing namespace std;int main(){    vector<int> ar = { 1, 2, 3, 4, 5 };          // Declaring iterators to a vector    vector<int>::iterator ptr = ar.begin();    vector<int>::iterator ftr = ar.end();              // Using next() to return new iterator    // points to 4    auto it = next(ptr, 3);          // Using prev() to return new iterator    // points to 3    auto it1 = prev(ftr, 3);          // Displaying iterator position    cout << "The position of new iterator using next() is : ";    cout << *it << " ";    cout << endl;          // Displaying iterator position    cout << "The position of new iterator using prev()  is : ";    cout << *it1 << " ";    cout << endl;          return 0; }
Output:
The position of new iterator using next() is : 4 
The position of new iterator using prev()  is : 3 

6. inserter() :- This function is used to insert the elements at any position in the container. It accepts 2 arguments, the container and iterator to position where the elements have to be inserted.
// C++ code to demonstrate the working of// inserter()#include<iostream>#include<iterator> // for iterators#include<vector> // for vectorsusing namespace std;int main(){    vector<int> ar = { 1, 2, 3, 4, 5 };    vector<int> ar1 = {10, 20, 30};           // Declaring iterator to a vector    vector<int>::iterator ptr = ar.begin();         // Using advance to set position    advance(ptr, 3);          // copying 1 vector elements in other using inserter()    // inserts ar1 after 3rd position in ar    copy(ar1.begin(), ar1.end(), inserter(ar,ptr));          // Displaying new vector elements    cout << "The new vector after inserting elements is : ";    for (int &x : ar)         cout << x << " ";          return 0;    }
Output:
The new vector after inserting elements is : 1 2 3 10 20 30 4 5 

Types of Iterators :
Input IteratorsOutput IteratorsForward IteratorBidirectional IteratorsRandom-Access Iterators
Input Iterators
Output Iterators
Forward Iterator
Bidirectional Iterators
Random-Access Iterators
C++ Programming Language Tutorial | Iterators in C++ STL | GeeksforGeeks - YouTubeGeeksforGeeks532K subscribersC++ Programming Language Tutorial | Iterators in C++ STL | GeeksforGeeksWatch laterShareCopy link20/45InfoShoppingTap to unmuteIf playback doesn't begin shortly, try restarting your device.You're signed outVideos you watch may be added to the TV's watch history and influence TV recommendations. To avoid this, cancel and sign in to YouTube on your computer.CancelConfirmMore videosMore videosSwitch cameraShareInclude playlistAn error occurred while retrieving sharing information. Please try again later.Watch on0:000:000:00 / 2:58•Live•<div class="player-unavailable"><h1 class="message">An error occurred.</h1><div class="submessage"><a href="https://www.youtube.com/watch?v=krzOq7dFWUU" target="_blank">Try watching this video on www.youtube.com</a>, or enable JavaScript if it is disabled in your browser.</div></div>
This article is contributed by Manjeet Singh .If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
IkamaruEnauki
cpp-iterator
CPP-Library
STL
C++
STL
CPP
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.