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.
- Trả về một
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ượngconst
.
- Trả về một
- 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
- Đượ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").
- Hàm có độ phức tạp thời gian là
O(1)
vì chỉ đơn giản trả về iterator. - 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.
- Để iterator hợp lệ, deque không được sửa đổi trong khi đang sử dụng
reverse_iterator
. - Nếu bạn cần thao tác với dữ liệu
const
, hãy sử dụngconst_reverse_iterator
. - 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ớirbegin()
). - 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). rbegin()
thường được sử dụng cùng vớirend()
để 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.- 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
back | Trả về tham chiếu đến phần tử cuối cùng trong deque |
rend | Trả về một reverse iterator trỏ đến phần tử trước phần tử đầu tiên của deque |
begin | Trả về một iterator trỏ đến phần tử đầu tiên của deque |
end | Trả về một iterator trỏ đến phần tử sau phần tử cuối cùng của deque |