ในบทความนี้ เราจะพูดถึงการทำงาน ไวยากรณ์ และตัวอย่างของฟังก์ชัน stack::emplace() ใน C++ STL
สแต็คใน C++ STL คืออะไร
สแต็คคือโครงสร้างข้อมูลที่จัดเก็บข้อมูลใน LIFO (เข้าก่อนออกก่อน) ที่เราทำการแทรกและลบจากด้านบนขององค์ประกอบสุดท้ายที่แทรก เช่นเดียวกับกองเพลต หากเราต้องการดันเพลทใหม่เข้าไปในกอง ให้ใส่ที่ด้านบนสุด และถ้าเราต้องการเอาเพลทออกจากกอง เราก็เอาออกจากด้านบนด้วย
stack::emplace() คืออะไร
ฟังก์ชัน stack::emplace() เป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งกำหนดไว้ในไฟล์ส่วนหัว
เมื่อเราเรียกใช้ฟังก์ชันนี้ ฟังก์ชันจะแทรกองค์ประกอบใหม่ที่ด้านบนของสแต็กและทำให้องค์ประกอบที่แทรกใหม่เป็นองค์ประกอบด้านบน ฟังก์ชันนี้เรียก emplace_back เพื่อแทรกองค์ประกอบใหม่ที่ด้านบนสุด
ไวยากรณ์
stack_name.emplace(Args& args);
พารามิเตอร์
ฟังก์ชันยอมรับพารามิเตอร์ต่อไปนี้ −
-
อาร์กิวเมนต์ − นี่คือข้อโต้แย้งที่เราต้องการแสดง
คืนค่า
ฟังก์ชันนี้ไม่ส่งคืนสิ่งใด
ป้อนข้อมูล
std::stack<int> stack1; stack1.emplace(1); stack1.emplace(2); stack1.emplace(3);
ผลผลิต
3 2 1
ตัวอย่าง
#include <iostream>
#include <stack>
using namespace std;
int main(){
stack<int> stck;
stck.emplace(10);
stck.emplace(20);
stck.emplace(30);
stck.emplace(40);
stck.emplace(50);
stck.emplace(60);
cout << "Elements in stack are: ";
while (!stck.empty()){
cout<<stck.top() << " ";
stck.pop();
}
return 0;
} ผลลัพธ์
หากเราเรียกใช้โค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้ -
Elements in stack are: 60 50 40 30 20 10
ตัวอย่าง
#include <iostream>
#include <stack>
using namespace std;
int main(){
stack<int> stck;
int total = 0;
stck.emplace(10);
stck.emplace(20);
stck.emplace(30);
stck.emplace(40);
stck.emplace(50);
stck.emplace(60);
cout << "Elements in stack are: ";
while (!stck.empty()){
cout<<stck.top() << " ";
stck.pop();
total++;
}
cout<<"\nTotal number of elements in stack are: "<<total;
return 0;
} ผลลัพธ์
หากเราเรียกใช้โค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้ -
Elements in stack are: 60 50 40 30 20 10 Total number of elements in stack are: 6