Dado un conjunto de enteros sett y un índice entero , la tarea es encontrar el elemento en el conjunto que está presente en index . Si el índice está más allá de los límites, imprima «Índice no válido».
Ejemplos:
Entrada: sett = {11, 44, 66, 72, 88, 99}, index = 2
Salida: El elemento en el índice 2 es: 66
Explicación:
El elemento 66 está presente en el conjunto y está presente en el índice 2.
Entrada : sett = {11, 44, 66, 72, 88, 99}, índice = 6
Salida: índice no válido
Acercarse:
- Defina una plantilla getNthElement que encuentre el índice de un elemento en particular usando la función next() .
La función next() devuelve un iterador que apunta al elemento después de haber avanzado una cierta cantidad de posiciones. Se define dentro del archivo de encabezado.
- Con la función next(), getNthElement devuelve un par de valores booleanos y enteros. El valor booleano indica si el índice se encuentra en el conjunto o no. El valor entero contiene el entero almacenado en el índice del conjunto.
- Si el valor booleano se establece como verdadero, lo que indica que el índice es un índice válido, imprima el valor entero almacenado en el par. De lo contrario, imprima «Índice no válido».
A continuación se muestra la implementación del enfoque anterior:
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; }
The element at index 2 is 66
Complejidad temporal: O(N)
Espacio auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por instantramen y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA