Stack Emplace Function

C++ Stack emplace function adds a new element at the top of the stack above the current top element. Now, we have a stack with already existing elements, and we wish to insert or push a new element in the stack, for doing that we use this function.

Syntax

Example

template <class... Args> void emplace (Args&&... args);

Parameters

args :The parameter forwards the argument for the construction of new element. That is the element specified by args is inserted in the stack over the current top element. The newly inserted element now becomes the top element and all the push and pop operations are performed on it.

Return value

The function is used only for the addition of new elements and does not return any value. Hence the return type of the function is void.

Example 1

//The program illustrates the use of emplace function by adding two simple strings at the top of the stack and printing them.

Example

#include<iostream>
#include<stack>
#include<string>
int main()
{
	std: : stack<std: : string> newstack;
	newstack.emplace (?I am the first line?);
	newstack.emplace (?I am the second one?);
	std: :cout << ?Contents of newstack: \n?;
	while (!newstack.empty () )
	{
		std: :cout << newstack.top () << ?\n?;
		newstack.pop ();
	}
	return 0;
}

Output:

Output

Contents of newstack:
I am the second one
I am the first line

Example 2

//The program illustrates the use of emplace function by inserting the table of 11 on the and then respectively printing it.

Example

#include<iostream>
#include<stack>
#include<string>
int main()
{
	std: : stack<std: : string> newstack;
	newstack.emplace (?11?);
	newstack.emplace (?22?);
	newstack.emplace (?33?);
	newstack.emplace (?44?);
	newstack.emplace (?55?);
	newstack.emplace (?66?);
	newstack.emplace (?77?);
	newstack.emplace (?88?);
	newstack.emplace (?99?);
	newstack.emplace (?121?);
	std: :cout << ?Contents of newstack: \n?;
	 std: :cout <<?Table of 11?;

	while (!newstack.empty () )
	{
		std: :cout << newstack.top () << ?\n?;
		newstack.pop ();
	}
	return 0;
}

Output:

Output

Contents of newstack: 
Table of 11121
99
88
77
66
55
44
33
22
11

Example 3

//The program illustrates the use of emplace function by adding two simple strings at the top of the stack and printing them.

Example

#include<iostream>
#include<stack>
#include<string>
int main()
{
	std::stack<std::string> newstack;
	newstack.emplace ("We are here to see the application use of emplace function in stacks");
	newstack.emplace ("The function adds new elements are the top of the stack");
	while (!newstack.empty () )
	{
		std::cout << newstack.top () << "\n";
		newstack.pop ();
	}
	return 0;
}

Output:

Output

The function adds new elements are the top of the stack         
We are here to see the application use of emplace function in stacks

Complexity

One call is made to the emplace_back. The function is used for inserting a new element which is done by making a single call.

Data races

All the elements present in the stack are modified. Since the element is added to the top hence respective positions of all the other elements are also changed.

Exception Safety

Guarantee as equivalent to the operations that are performed on the underlying container object is provided.

Input Required

This code uses input(). Please provide values below: