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

queue::emplace() ใน C++ STL


ในบทความนี้เราจะอธิบายการทำงาน ไวยากรณ์ และตัวอย่างของฟังก์ชัน queue::emplace() ใน C++ Standard Template Library (STL)

Queue ใน C++ STL คืออะไร?

Queue เป็นโครงสร้างข้อมูลหรือลำดับข้อมูลพื้นฐานใน C++ STL ที่จัดการข้อมูลแบบ FIFO (First In First Out) ข้อมูลใน queue จะถูกจัดเก็บอย่างต่อเนื่อง องค์ประกอบจะถูกแทรกที่ปลาย (rear/back) และนำออกจากหน้า (front) C++ STL มี template ของ queue ให้ใช้งานสำเร็จรูปแล้ว

queue::emplace() คืออะไร?

queue::emplace() เป็นฟังก์ชันในตัวของ C++ STL ที่ประกาศใน header file <queue> ฟังก์ชันนี้ใช้สำหรับ สร้างและแทรก (emplace) องค์ประกอบใหม่ ใน queue container เนื่องจากลักษณะการทำงานของ queue คือแทรกที่ปลาย ฟังก์ชัน emplace() จะเรียก emplace_back() ภายในเพื่อแทรกองค์ประกอบที่ปลายของ queue container ให้สำเร็จ

ไวยากรณ์ (Syntax)

myqueue.emplace(value);

พารามิเตอร์ (Parameters)

รับพารามิเตอร์หนึ่งคือองค์ประกอบที่ต้องการแทรกใน queue container ที่เกี่ยวข้อง

ค่าที่ส่งคืน (Return Value)

ฟังก์ชันนี้ไม่ส่งคืนค่าใดๆ (void)

ตัวอย่างการใช้งาน

Input: queue<int> myqueue = {10, 20, 30, 40};
myqueue.emplace(50);
Output: Elements In the queue = 10 20 30 40 50

ตัวอย่างโค้ดเต็ม 1

#include <iostream>
#include <queue>
using namespace std;

int main() {
    queue<int> Queue;
    Queue.emplace(10);
    Queue.emplace(20);
    Queue.emplace(30);
    Queue.emplace(40);
    Queue.emplace(50);
    
    cout << "Elements in Queue are: ";
    while(!Queue.empty()) {
        cout << ' ' << Queue.front();
        Queue.pop();
    }
    return 0;
}

ผลลัพธ์ (Output)

Elements in Queue are: 10 20 30 40 50

ตัวอย่างโค้ดเต็ม 2 (ใช้ string)

#include <iostream>
#include <queue>
using namespace std;

int main() {
    queue<string> Queue;
    Queue.emplace("Welcome");
    Queue.emplace("To");
    Queue.emplace("Tutorials");
    Queue.emplace("Point");
    
    cout << "String is : ";
    while (!Queue.empty()) {
        cout << ' ' << Queue.front();
        Queue.pop();
    }
    return 0;
}

ผลลัพธ์ (Output)

String is : Welcome To Tutorials Point