Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

unordered_set end() in C++ STL

  • Difficulty Level : Basic
  • Last Updated : 08 Oct, 2018

The unordered_set::end() function is a built-in function in C++ STL which returns an iterator pointing to the past-the-end-element. This iterator does not directly point to an element, rather it points to the location just after the last element.

Syntax

Want to learn from the best curated videos and practice problems, check out the C++ Foundation Course for Basic to Advanced C++ and C++ STL Course for foundation plus STL.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.
umap_name.end()

or,

umap_name.end(int i)

Parameters: This function takes a single integer parameter i which is optional.

Return value:



  • If the parameter i is not passed then the function returns an iterator pointing to the past-the-end element. Actually, it does not point to any element of the set, but it points to the position following the last element of the container.
  • If the parameter i is passed then the function returns an iterator pointing to the past-the-end element of i-th bucket. As in the previous case, it does not point to any element of the set, but it points to the position following the last element of i-th bucket.
    So the iterator returned by unordered_set::end() cannot be dereferenced.

Below programs illustrate the unordered_set::end() function:

Program 1:




// CPP program to illustrate the unordered_set::end() 
// function
  
#include <iostream>
#include <unordered_set>
  
using namespace std;
  
int main()
{
    unordered_set<int> sampleSet = 
            { 5, 10, 15, 4, 2, 7, 8, 6 };
  
    // Continue the loop until it points to the
    // past-the-end position returned by sampleSet.end()
    for (auto it = sampleSet.begin(); it != sampleSet.end(); 
                                                        it++) 
    {
        cout << *it << " ";
    }
  
    return 0;
}
Output:
6 8 7 2 4 15 10 5

Program 2:




// CPP program to illustrate the
// unordered_set::end() function
  
#include <iostream>
#include <unordered_set>
  
using namespace std;
  
int main()
{
    unordered_set<int> sampleSet = 
                { 5, 10, 15, 4, 2, 7, 8, 6 };
  
    // displaying all the buckets of the set.
    // Continue the loop until it points to the 
    // past-the-end position returned by sampleset.end(i)
    for (unsigned i = 0; i < sampleSet.bucket_count(); ++i) 
    {
        cout << "Bucket " << i << " Contains: ";
        for (auto it1 = sampleSet.begin(i); 
                        it1 != sampleSet.end(i); ++it1)
            cout << " " << *it1;
        cout << endl;
    }
      
    return 0;
}
Output:
Bucket 0 Contains: 
Bucket 1 Contains: 
Bucket 2 Contains:  2
Bucket 3 Contains: 
Bucket 4 Contains:  4 15
Bucket 5 Contains:  5
Bucket 6 Contains:  6
Bucket 7 Contains:  7
Bucket 8 Contains:  8
Bucket 9 Contains: 
Bucket 10 Contains:  10



My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!