unordered_set end() in C++ STL
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
umap_name.end() or, umap_name.end(int i)
Parameters: This function takes a single integer parameter which is optional. Return value:
- If the parameter
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
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
// 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
Time Complexity: O(1)
Auxiliary Space: O(1)
Program 2:
CPP
// 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
Time Complexity: O(1)
Auxiliary Space: O(1)
Please Login to comment...