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 = 2Output:The element at index 2 is : 66Explaination:

The element 66 is present in the set and it is present at index 2.

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

**Approach:**

- 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. - 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.
- 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 <bits/stdc++.h>` `using` `namespace` `std;` ` ` `// Generic template` `template` `<` `typename` `T>` `pair<T, ` `bool` `> getNthElement(set<T>& searchSet,` ` ` `int` `index)` `{` ` ` `pair<T, ` `bool` `> 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)

**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**

**.**