ในบทความนี้ เราจะพูดถึงการทำงาน ไวยากรณ์ และตัวอย่างของฟังก์ชัน 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