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

deque::at() และ deque::swap() ใน C++ STL


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

Deque คืออะไร?

Deque (Double Ended Queue) เป็นคอนเทนเนอร์ลำดับที่ให้ฟังก์ชันการขยายและหดตัวได้ที่ทั้งสองปลาย โครงสร้าง queue ทั่วไปอนุญาตให้แทรกข้อมูลเฉพาะที่ปลาย (END) และลบข้อมูลจากหน้า (FRONT) เท่านั้น ส่วน Deque อนุญาตให้แทรกและลบข้อมูลได้ที่ทั้งสองปลาย

deque::at() คืออะไร?

deque::at() เป็นฟังก์ชันในตัวของ C++ STL ที่ประกาศใน header file <deque> ฟังก์ชันนี้ส่งคืน reference ที่ใช้ชี้ไปยังองค์ประกอบที่ตำแหน่งที่ระบุใน deque ฟังก์ชันจะไปยังองค์ประกอบที่ตำแหน่งที่ส่งผ่านเป็นอาร์กิวเมนต์ ตำแหน่งเริ่มจาก 0

ไวยากรณ์ (Syntax)

mydeque.at(int position);

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

รับพารามิเตอร์หนึ่งคือตำแหน่งที่ต้องการชี้

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

ส่งคืน reference ไปยังองค์ประกอบที่ตำแหน่งที่ระบุของ deque container

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

Input: deque<int> mydeque = {10, 20, 30, 40};
mydeque.at(2);
Output: Element at 2 positions is 30

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

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

int main() {
    deque<int> myDeque;
    myDeque.push_back(90);
    myDeque.push_back(80);
    myDeque.push_back(70);
    myDeque.push_back(60);
    myDeque.push_back(50);
    myDeque.push_back(40);
    myDeque.push_back(30);
    myDeque.push_back(20);
    myDeque.push_back(10);
    
    for (int i = 0; i < myDeque.size(); ++i) {
        if (i % 2 == 0) {
            cout << myDeque.at(i);
            cout << " ";
        }
    }
    return 0;
}

ผลลัพธ์ (Output)

90 70 50 30 10

deque::swap() คืออะไร?

deque::swap() เป็นฟังก์ชันในตัวของ C++ STL ที่ประกาศใน header file <deque> ฟังก์ชันนี้ใช้สำหรับ สลับเนื้อหา ระหว่าง deque container หนึ่งกับอีก deque container หนึ่ง ฟังก์ชันรับออบเจ็กต์ของ deque อีกอันที่ต้องการสลับข้อมูล

ไวยากรณ์ (Syntax)

mydeque1.swap(mydeque2);

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

รับพารามิเตอร์หนึ่งคือ reference ไปยัง deque ที่ต้องการสลับข้อมูล

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

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

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

Input: deque<int> even = {2, 4, 6, 8};
deque<int> odd = {1, 3, 5, 7};
even.swap(odd);
Output: Even deque: 1 3 5 7
Odd deque: 2 4 6 8

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

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

int main() {
    deque<int> Deque_1 = { 1, 2, 3, 4 };
    deque<int> Deque_2 = { 3, 5, 7, 9 };
    Deque_1.swap(Deque_2);
    
    cout << "Deque_1 elements after swapping : ";
    for (auto i = Deque_1.begin(); i != Deque_1.end(); ++i)
        cout << *i << " ";
    cout << endl << "Deque_2 elements after swapping : ";
    for (auto i = Deque_2.begin(); i != Deque_2.end(); ++i)
        cout << *i << " ";
    return 0;
}

ผลลัพธ์ (Output)

Deque_1 elements after swapping : 3 5 7 9
Deque_2 elements after swapping : 1 2 3 4