Computer >> Máy Tính >  >> Lập trình >> C ++

deque ::at () và deque ::swap () trong STL lập trình C ++

Trong bài viết này, chúng ta sẽ thảo luận về cách làm việc, cú pháp và ví dụ của các hàm deque ::at () và deque ::swap () trong C ++ STL.

Deque là gì?

Deque là Hàng đợi kết thúc kép là các vùng chứa trình tự cung cấp chức năng mở rộng và thu hẹp ở cả hai đầu. Một cấu trúc dữ liệu hàng đợi cho phép người dùng chỉ chèn dữ liệu ở vị trí KẾT THÚC và xóa dữ liệu khỏi ô TRƯỚC. Hãy lấy sự tương tự của hàng đợi tại các điểm dừng xe buýt nơi người đó có thể được chèn vào hàng đợi chỉ từ END và người đứng ở FRONT là người đầu tiên bị loại bỏ trong khi trong hàng đợi Double end, việc chèn và xóa dữ liệu có thể thực hiện được ở cả hai kết thúc.

deque ::at () là gì?

deque ::at () là một hàm có sẵn trong C ++ STL được khai báo trong tệp tiêu đề . deque ::at () trả về một tham chiếu được sử dụng để trỏ phần tử hiện diện tại vị trí được chỉ định trong deque. Hàm này chuyển đến phần tử hiện diện tại vị trí được truyền như một đối số cho hàm. Giá trị vị trí bắt đầu từ 0.

Cú pháp

mydeque.at(int position);

Tham số

Hàm này chấp nhận một tham số cho vị trí mà chúng ta muốn trỏ đến.

Giá trị trả về

Nó trả về một tham chiếu đến phần tử trên vị trí được chỉ định của vùng chứa deque.

Ví dụ

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

Đầu ra

Phần tử ở 2 vị trí là 30.

Ví dụ

#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;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

90 70 50 30 10

deque ::swap () là gì?

deque ::swap () là một hàm có sẵn trong C ++ STL được khai báo trong tệp tiêu đề . deque ::swap () được sử dụng để hoán đổi nội dung của một vùng chứa deque với vùng chứa kia. Hàm này nhận một đối tượng của vùng chứa deque khác có dữ liệu mà chúng tôi muốn hoán đổi với vùng chứa deque được liên kết.

Cú pháp

mydeque1.swap(type_t& mydeque2);

Tham số

Hàm này chấp nhận một tham số, tức là tham chiếu đến deque có dữ liệu mà chúng ta muốn hoán đổi với deque được liên kết.

Giá trị trả về

Nó không trả lại gì.

Ví dụ

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

Ví dụ

#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;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

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