Chuyển tới nội dung chính

std::deque::rbegin

#include <deque>

      reverse_iterator rbegin();
const_reverse_iterator rbegin() const;

Trả về một reverse iterator trỏ đến phần tử cuối cùng của deque.

Tham số

Không có tham số

Giá trị trả về

  • Trả về một reverse iterator trỏ tới phần tử cuối cùng của deque. Reverse iterator này cho phép duyệt ngược qua các phần tử của deque.
  • reverse_iterator rbegin();
    • Trả về một reverse_iterator có thể đọc và ghi, cho phép thay đổi giá trị các phần tử khi duyệt ngược.
  • const_reverse_iterator rbegin() const;
    • Trả về một const_reverse_iterator, chỉ cho phép đọc giá trị các phần tử, không thể thay đổi chúng. Phiên bản này được sử dụng khi deque là một đối tượng const.
  • Nếu deque rỗng, iterator trả về sẽ bằng với rend() (điểm cuối của dải reverse iterator).

Đặc điểm

  1. Được sử dụng để trả về một iterator trỏ đến phần tử cuối cùng của deque (bắt đầu duyệt ngược, "reverse begin").
  2. Hàm có độ phức tạp thời gian là O(1) vì chỉ đơn giản trả về iterator.
  3. Thích hợp cho các thuật toán hoặc thao tác yêu cầu duyệt từ phần tử cuối đến phần tử đầu.
  4. Để iterator hợp lệ, deque không được sửa đổi trong khi đang sử dụng reverse_iterator.
  5. Nếu bạn cần thao tác với dữ liệu const, hãy sử dụng const_reverse_iterator.
  6. Khi sử dụng reverse iterator, toán tử * (dereference) sẽ trả về giá trị của phần tử hiện tại mà iterator đang trỏ tới (phần tử cuối cùng khi bắt đầu với rbegin()).
  7. Toán tử ++ trên reverse iterator sẽ di chuyển iterator đến phần tử trước đó trong deque (theo thứ tự thông thường).
  8. rbegin() thường được sử dụng cùng với rend() để duyệt ngược qua toàn bộ deque. rend() trả về reverse iterator trỏ đến phần tử "past-the-end" ở phía trước phần tử đầu tiên.
  9. Gọi rbegin() không làm thay đổi nội dung của deque.

Ví dụ

Duyệt qua các phần tử

#include <iostream>
#include <deque>

int main() {
std::deque<int> dq = {10, 20, 30, 40, 50};

// Duyệt ngược qua deque bằng rbegin()
for (auto it = dq.rbegin(); it != dq.rend(); ++it) {
std::cout << *it << " ";
}

return 0;
}

Sử dụng với const deque

#include <iostream>
#include <deque>

int main() {
const std::deque<int> dq = {1, 2, 3};

// Sử dụng const_reverse_iterator
for (auto it = dq.rbegin(); it != dq.rend(); ++it) {
std::cout << *it << " ";
}

return 0;
}

#include <iostream>
#include <deque>
#include <algorithm> // for std::reverse

int main() {
std::deque<int> myDeque = {1, 2, 3, 4, 5};

// Đảo ngược thứ tự các phần tử trong deque
std::reverse(myDeque.rbegin(), myDeque.rend());

std::cout << "Reversed deque:";
for (int x : myDeque) {
std::cout << ' ' << x;
}
std::cout << '\n'; // Output: Reversed deque: 5 4 3 2 1

return 0;
}

Các hàm liên quan

backTrả về tham chiếu đến phần tử cuối cùng trong deque
rendTrả về một reverse iterator trỏ đến phần tử trước phần tử đầu tiên của deque
beginTrả về một iterator trỏ đến phần tử đầu tiên của deque
endTrả về một iterator trỏ đến phần tử sau phần tử cuối cùng của deque