Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Hàm deque::rend() trong C++ STL


Bài viết trình bày chức năng của hàm rend() của deque trong C++ STL.

Deque là gì?

Deque (Double Ended Queue) là hàng đợi hai đầu, là container trình tự cho phép mở rộng và thu hẹp ở cả hai đầu. Khác với queue thông thường chỉ cho phép chèn ở cuối và xóa ở đầu, deque cho phép chèn/xóa ở cả hai đầu.

Hàm rend() là gì?

Hàm rend() trả về reverse iterator trỏ đến vị trí trước phần tử đầu tiên của deque (tức là "một bước trước begin()" khi duyệt ngược). Hàm này thường dùng cùng rbegin() để duyệt deque theo chiều ngược.

Cú pháp − deque_name.rend()

Giá trị trả về − Trả về reverse iterator trỏ đến vị trí trước phần tử đầu tiên của deque.

Ví dụ

Đầu vào Deque: 5 4 4 2 0

Đầu ra Deque ngược: 0 2 4 4 5

Cách tiếp cận

  • Khai báo deque
  • In deque
  • Dùng rend() kết hợp rbegin() để duyệt ngược
  • In deque sau khi duyệt ngược

Ví dụ 1

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

int main() {
    deque<int> dq = {7, 4, 0, 3, 7};
    cout << "Deque: ";
    for(auto x = dq.begin(); x != dq.end(); ++x)
        cout << *x << " ";
    cout << "\nReversed deque: ";
    for(auto x = dq.rbegin(); x != dq.rend(); ++x)
        cout << *x << " ";
    return 0;
}

Kết quả

Deque: 7 4 0 3 7
Reversed Deque: 7 3 0 4 7

Ví dụ 2

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

int main() {
    deque<char> dq = {'S', 'U', 'B', 'T', 'R', 'A', 'C', 'T'};
    cout << "Deque: ";
    for(auto x = dq.begin(); x != dq.end(); ++x)
        cout << *x << " ";
    cout << "\nReversed deque: ";
    for(auto x = dq.rbegin(); x != dq.rend(); ++x)
        cout << *x << " ";
    return 0;
}

Kết quả

Deque: S U B T R A C T
Reversed deque: T C A R T B U S