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

deque ::operator =và deque ::operator [] trong C ++ STL

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à các ví dụ của deque ::operator =và deque ::operator [] 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. 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 ::operator =?

là gì

deque ::operator =được sử dụng để gán các giá trị mới cho vùng chứa deque bằng cách thay thế các giá trị đã có. Toán tử này cũng sửa đổi kích thước của vùng chứa deque theo các giá trị mới.

Cú pháp

mydeque1 = mydeque2;

Nó cần một thùng chứa deque khác cùng loại.

Giá trị trả về

Toán tử trả về * con trỏ này của vùng chứa deque có dữ liệu mà chúng tôi muốn gán.

Ví dụ

Input: deque<int> odd = {1, 3, 5, 7};
   Deque<int> eve = {2, 4, 6};
   odd = eve;
Output:
   Odd: 2, 4, 6
   Eve: 2, 4, 6

Ví dụ

#include <deque>
#include <iostream>
using namespace std;
int main(){
   deque<int> Deque_1 = { 10, 20, 30 };
   deque<int> Deque_2 = { 30, 20, 10 };
   deque<int> Deque_3 = {};
   //it will swap the elements of both the deque
   Deque_3 = Deque_2;
   Deque_2 = Deque_1;
   Deque_1 = Deque_3;
   cout<<"Elements in Deque_1 are: ";
   for (auto i = Deque_1.begin(); i!= Deque_1.end(); ++i)
      cout << ' ' << *i;
   cout<<"\nElements in Deque_2 are: ";
   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 -

Elements in Deque_1 are: 30, 20, 10
Elements in Deque_2 are: 10 20 30

deque ::operator [] là gì?

deque ::operator [] được sử dụng để truy cập phần tử trên một vị trí được chỉ định. Toán tử này trả về một tham chiếu đến phần tử hiện diện tại vị trí đã cho trong []. Điều này hoạt động theo cách tương tự như deque ::at (). Khi chúng ta yêu cầu một vị trí phần tử nằm ngoài vùng chứa thì toán tử sẽ ném ra ngoại lệ out_of_range. Ban đầu vị trí của thùng chứa deque bắt đầu bằng 0.

Cú pháp

mydeque[postion];

Nó yêu cầu một vị trí mà chúng tôi muốn tìm nạp.

Giá trị trả về

Toán tử này trả về một tham chiếu trực tiếp của phần tử có ở vị trí được chỉ định.

Ví dụ

Input: deque<int> mydeque = {1, 2, 3, 4, 5, 6};
   mydeque[2];
Output:
   3

Ví dụ

#include <deque>
#include <iostream>
using namespace std;
int main(){
   deque<int> Deque = {10, 20, 30, 40, 50};
   cout<<"Elements are : ";
   for (int i = 0; i < Deque.size(); ++i){
      if (i % 2 != 0){
         cout << Deque[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 -

Elements are : 20 40