给定一组整数sett和一个整数索引,任务是在索引中找到集合中的元素。如果索引超出限制,则打印“无效索引”。
例子:
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
方法:
- 定义一个模板getNthElement ,该模板使用next()函数查找特定元素的索引。
next() function returns an iterator pointing to the element after being advanced by certain number of positions. It is defined inside the header file.
- 使用next()函数,getNthElement返回一对布尔值和整数值。布尔值表示是否找到索引集合。整数值包含存储在集合中index处的整数。
- 如果布尔值设置为true(表示index为vakid索引),则打印存储在该对中的整数值。否则,打印“无效索引”。
下面是上述方法的实现:
C++
// C++ program to access a
// set element by its index
#include
using namespace std;
// Generic template
template
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 sett = { 11, 44, 66,
72, 88, 99 };
int index = 2;
pair result
= getNthElement(
sett, index);
if (result.second)
cout << "The element at index "
<< index << " is "
<< result.first;
else
cout << "Invalid index";
return 0;
}
输出:
The element at index 2 is 66
时间复杂度: O(N)
辅助空间: O(1)
想要从精选的最佳视频中学习并解决问题,请查看有关从基础到高级C++的C++基础课程以及有关语言和STL的C++ STL课程。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。