apilar emplazar() en C++ STL – Part 1

Las pilas son un tipo de adaptadores de contenedores con tipo de funcionamiento LIFO (Last In First Out), donde se agrega un nuevo elemento en un extremo y (arriba) se elimina un elemento solo de ese extremo.
 

apilar::emplazar()

Esta función se usa para insertar un nuevo elemento en el contenedor de la pila, el nuevo elemento se agrega encima de la pila. 
Sintaxis: 
 

stackname.emplace(value)
Parameters :
The element to be inserted into the stack
is passed as the parameter.
Result :
The parameter is added to the stack 
at the top position.

Ejemplos: 
 

Input  : mystack{1, 2, 3, 4, 5};
         mystack.emplace(6);
Output : mystack = 6, 5, 4, 3, 2, 1

Input  : mystack{};
         mystack.emplace(4);
Output : mystack = 4
Note: In stack container, the elements are printed in reverse order because the top is printed first then moving on to other elements.

Errores y excepciones 
1. Tiene una fuerte garantía de excepción, por lo tanto, no se realizan cambios si se lanza una excepción. 
2. El parámetro debe ser del mismo tipo que el del contenedor; de lo contrario, se genera un error.
 

CPP

// CPP program to illustrate
// Implementation of emplace() function
#include <iostream>
#include <stack>
using namespace std;
 
int main() {
  stack<int> mystack;
  mystack.emplace(1);
  mystack.emplace(2);
  mystack.emplace(3);
  mystack.emplace(4);
  mystack.emplace(5);
  mystack.emplace(6);
  // stack becomes 1, 2, 3, 4, 5, 6
 
  // printing the stack
  cout << "mystack = ";
  while (!mystack.empty()) {
    cout << mystack.top() << " ";
    mystack.pop();
  }
  return 0;
}

Producción: 
 

6 5 4 3 2 1

Complejidad de tiempo: O(1)
Diferencia entre la función stack::emplace() y stack::push().  
Mientras que la función push() inserta una copia del valor o el parámetro pasado a la función en el contenedor en la parte superior, la función emplace() construye un nuevo elemento como el valor del parámetro y luego lo agrega a la parte superior del contenedor. . 
Aplicación: 
Dada una cantidad de enteros, agréguelos a la pila usando emplace() y encuentre el tamaño de la pila sin usar la función de tamaño.
 

Input : 5, 13, 0, 9, 4
Output: 5

Algoritmo 
1. Inserte los elementos dados en el contenedor de pila usando emplace() uno por uno. 
2. Siga extrayendo los elementos de la pila hasta que se vacíe e incremente la variable contador. 
3. Imprima la variable de contador.
 

CPP

// CPP program to illustrate
// Application of emplace() function
#include <iostream>
#include <stack>
using namespace std;
 
int main() {
  int c = 0;
  // Empty stack
  stack<int> mystack;
  mystack.emplace(5);
  mystack.emplace(13);
  mystack.emplace(0);
  mystack.emplace(9);
  mystack.emplace(4);
  // stack becomes 5, 13, 0, 9, 4
 
  // Counting number of elements in queue
  while (!mystack.empty()) {
    mystack.pop();
    c++;
  }
  cout << c;
}

Producción: 
 

5

Publicación traducida automáticamente

Artículo escrito por AyushSaxena 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 *