Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

stack emplace() ใน C ++ STL


ในบทความนี้ เราจะพูดถึงการทำงาน ไวยากรณ์ และตัวอย่างของฟังก์ชัน stack::emplace() ใน C++ STL

สแต็คใน C++ STL คืออะไร

สแต็คคือโครงสร้างข้อมูลที่จัดเก็บข้อมูลใน LIFO (เข้าก่อนออกก่อน) ที่เราทำการแทรกและลบจากด้านบนขององค์ประกอบสุดท้ายที่แทรก เช่นเดียวกับกองเพลต หากเราต้องการดันเพลทใหม่เข้าไปในกอง ให้ใส่ที่ด้านบนสุด และถ้าเราต้องการเอาเพลทออกจากกอง เราก็เอาออกจากด้านบนด้วย

stack::emplace() คืออะไร

ฟังก์ชัน stack::emplace() เป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งกำหนดไว้ในไฟล์ส่วนหัว emplace() ใช้เพื่อสร้างและแทรกองค์ประกอบในคอนเทนเนอร์สแต็กที่เกี่ยวข้องกับฟังก์ชัน

เมื่อเราเรียกใช้ฟังก์ชันนี้ ฟังก์ชันจะแทรกองค์ประกอบใหม่ที่ด้านบนของสแต็กและทำให้องค์ประกอบที่แทรกใหม่เป็นองค์ประกอบด้านบน ฟังก์ชันนี้เรียก 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