Imprima el elemento en un índice dado en un Conjunto en C++

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;
}
Producción: 

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *