Skip to content
Related Articles
Print the element at a given index in a Set in C++
• Last Updated : 25 Jun, 2020

Given a Set of integers sett and an integer index, the task is to find the element in the set which is present at index. If the index is beyond limits, then print “Invalid index”.

Examples:

Input: sett = {11, 44, 66, 72, 88, 99}, index = 2
Output: The element at index 2 is : 66
Explaination:
The element 66 is present in the set and it is present at index 2.

Input: sett = {11, 44, 66, 72, 88, 99}, index = 6
Output: Invalid index

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach:

1. Define a template getNthElement which find the index of particular element by using next() function.

next() function returns an iterator pointing to the element after being advanced by certain number of positions. It is defined inside the header file.

2. Using the next() function, getNthElement return a pair of boolean and integer values. The boolean value denotes if index is found the set or not. The integer value contains the integer stored at index in the set.
3. If the boolean value is set true, which indicates index to be a vakid index, print the integer value stored in the pair. Otherwise print “Invalid index”.

Below is the implementation of the above approach:

## C++

 `// C++ program to access a``// set element by its index`` ` `#include ``using` `namespace` `std;`` ` `// Generic template``template` `<``typename` `T>``pair getNthElement(set& searchSet,``                            ``int` `index)``{``    ``pair result;`` ` `    ``// Check if index is valid or not``    ``if` `(searchSet.size() > index) {``        ``result.first``            ``= *(std::next(``                ``searchSet.begin(),``                ``index));``        ``result.second = ``true``;``    ``}`` ` `    ``else``        ``result.second = ``false``;`` ` `    ``// Return the pair``    ``return` `result;``}`` ` `// Driver Program``int` `main()``{``    ``set<``int``> sett = { 11, 44, 66,``                      ``72, 88, 99 };``    ``int` `index = 2;`` ` `    ``pair<``int``, ``bool``> result``        ``= getNthElement(``            ``sett, index);`` ` `    ``if` `(result.second)``        ``cout << ``"The element at index "``             ``<< index << ``" is "``             ``<< result.first;``    ``else``        ``cout << ``"Invalid index"``;``    ``return` `0;``}`
Output:
```The element at index 2 is 66
```

Time Complexity: O(N)
Auxiliary Space: O(1)

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 the language and STL. To complete your preparation from learning a language to DS Algo and many more, please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up