English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تعليمية C++ الأساسية

C++ 流程控制

الوظائف الخاصة بـ C++

C++ 数组 & 字符串

C++ 数据结构

C++ 类 & 对象

الإشارة الخاصة بـ C++

الوراثة الخاصة بـ C++

تعليمية STL الخاصة بـ C++

C++ 参考手册

C++ Stack emplace() 函数使用方法及示例

Stack (الجمع) الخاصة بـ C++ STL

C ++堆栈 emplace()函数在当前顶部元素上方的堆栈顶部添加一个新元素。现在,我们有了一个已经存在元素的堆栈,我们希望在堆栈中插入或推入一个新元素,为此,我们使用了此函数。

语法

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

参量

args: 参数转发用于构建新元素的参数。也就是说,由args指定的元素将插入到当前顶部元素上方的堆栈中。现在,新插入的元素成为顶部元素,并且所有推入和弹出操作都在其上执行。

قيمة العودة

يستخدم هذا الدالة فقط لإضافة عنصر جديد ولا تعود بأي قيمة. لذلك، نوع العودة للدالة هو void.

مثال1

//يوضح هذا البرنامج استخدام دالة emplace من خلال إضافة اثنين من الأنماط البسيطة في أعلى المخزن وطباعتها.

#include<iostream>
#include<stack>
#include<string>
using namespace std;
int main()
{
	stack<string> newstack;
	newstack.emplace("أنا الأول");
	newstack.emplace("أنا الثاني");
	cout << "محتويات newstack: \n";
	while (!newstack.empty())
	{
		cout << newstack.top() << "\n";
		newstack.pop();
	}
	return 0;
}

الإخراج:

محتويات newstack:
أنا الثاني
أنا الأول

مثال2

//يوضح هذا البرنامج استخدام دالة emplace من خلال إضافة جدول 11 ثم طباعته.

#include<iostream>
#include<stack>
#include<string>
using namespace std;
int main()
{
    stack<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");
    cout << "محتويات newstack: \n";
    cout << "جدول 11";
    while (!newstack.empty())
    {
       cout << newstack.top() << "\n";
        newstack.pop();
    }
    return 0;
}

الإخراج:

محتويات newstack: 
جدول 11121
99
88
77
66
55
44
33
22
11

مثال3

//يوضح هذا البرنامج استخدام دالة emplace من خلال إضافة اثنين من الأنماط البسيطة في أعلى المخزن وطباعتها.

#include<iostream>
#include<stack>
#include<string>
using namespace std;
int main()
{
	stack<string> newstack;
	newstack.emplace("نستطيع رؤية تطبيق دالة emplace في المخزن هنا");
	newstack.emplace("النموذج الجديد المضاف في أعلى المخزن");
	while (!newstack.empty())
	{
		cout << newstack.top() << "\n";
		newstack.pop();
	}
	return 0;
}

الإخراج:

يتم إضافة العنصر الجديد الذي أضافته الوظيفة إلى قمة الدليل         
يمكننا رؤية تطبيق وظيفة emplace في الدليل هنا

معقد

تم إجراء مكالمة واحدة لـ emplace_back. هذه الوظيفة تستخدم ل插入 عنصر جديد من خلال إجراء مكالمة واحدة.

الصراع البياني

تم تعديل جميع العناصر الموجودة في الدليل. لأن العنصر تم إضافته إلى القمة، لذا تم تعديل مواضع جميع العناصر الأخرى أيضًا.

الأمان من الاستثناءات

يقدم ضماناً يعادل الأداء الذي يتم تنفيذه على عناصر القالب الأساسي.

Stack (الجمع) الخاصة بـ C++ STL