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

deque::at() และ deque::swap() ในการเขียนโปรแกรม C++ STL


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

เด็คคืออะไร

Deque คือ Double Ended Queues ซึ่งเป็นคอนเทนเนอร์ลำดับที่ให้การทำงานของการขยายและการหดตัวทั้งสองด้าน โครงสร้างข้อมูลคิวอนุญาตให้ผู้ใช้แทรกข้อมูลได้เฉพาะที่ END และลบข้อมูลออกจาก FRONT ลองมาเปรียบเทียบคิวที่ป้ายรถเมล์ที่คนสามารถแทรกลงในคิวจาก END เท่านั้นและบุคคลที่ยืนอยู่ด้านหน้าจะเป็นคนแรกที่ถูกลบในขณะที่ในคิวแบบ Double End การแทรกและการลบข้อมูลทำได้ทั้งสองแบบ จบ.

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

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

ไวยากรณ์

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 ซึ่งประกาศไว้ในไฟล์ส่วนหัว deque::swap() ใช้เพื่อสลับเนื้อหาของคอนเทนเนอร์ deque หนึ่งกับอีกคอนเทนเนอร์หนึ่ง ฟังก์ชันนี้รับออบเจ็กต์ของคอนเทนเนอร์ deque อื่นที่มีข้อมูลที่เราต้องการสลับกับคอนเทนเนอร์ deque ที่เกี่ยวข้อง

ไวยากรณ์

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