ในบทความนี้เราจะพูดถึงการทำงาน ไวยากรณ์และตัวอย่างของฟังก์ชัน deque::at() และ deque::swap() ใน C++ STL
เด็คคืออะไร
Deque คือ Double Ended Queues ซึ่งเป็นคอนเทนเนอร์ลำดับที่ให้การทำงานของการขยายและการหดตัวทั้งสองด้าน โครงสร้างข้อมูลคิวอนุญาตให้ผู้ใช้แทรกข้อมูลได้เฉพาะที่ END และลบข้อมูลออกจาก FRONT ลองมาเปรียบเทียบคิวที่ป้ายรถเมล์ที่คนสามารถแทรกลงในคิวจาก END เท่านั้นและบุคคลที่ยืนอยู่ด้านหน้าจะเป็นคนแรกที่ถูกลบในขณะที่ในคิวแบบ Double End การแทรกและการลบข้อมูลทำได้ทั้งสองแบบ จบ.
deque::at() คืออะไร
deque::at() เป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งประกาศไว้ในไฟล์ส่วนหัว
ไวยากรณ์
mydeque.at(int position);
พารามิเตอร์
ฟังก์ชันนี้ยอมรับพารามิเตอร์หนึ่งตัวสำหรับตำแหน่งที่เราต้องการชี้
คืนค่า
ส่งคืนการอ้างอิงไปยังองค์ประกอบในตำแหน่งที่ระบุของคอนเทนเนอร์ deque
ตัวอย่าง
Input: deque<int> mydeque = {10, 20, 30, 40}; mydeque.at(2);
ผลลัพธ์
องค์ประกอบที่ 2 ตำแหน่งคือ 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; }
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
90 70 50 30 10
deque::swap() คืออะไร
deque::swap() เป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งประกาศไว้ในไฟล์ส่วนหัว
ไวยากรณ์
mydeque1.swap(type_t& mydeque2);
พารามิเตอร์
ฟังก์ชันนี้ยอมรับพารามิเตอร์หนึ่งตัว นั่นคือ การอ้างอิงถึง deque ที่มีข้อมูลที่เราต้องการสลับกับ deque ที่เกี่ยวข้อง
คืนค่า
ไม่ส่งคืนสิ่งใด
ตัวอย่าง
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; }
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
Deque_1 elements after swapping : 3 5 7 9 Deque_2 elements after swapping : 1 2 3 4