std::list::rbegin
#include <list>
reverse_iterator rbegin() noexcept;
const_reverse_iterator rbegin() const noexcept;
Trả về một reverse_iterator trỏ đến phần tử cuối cùng của std::list. rbegin()
là viết tắt của "reverse begin".
Tham số
Không có tham số
Giá trị trả về
- reverse_iterator (phiên bản không const): Trả về một reverse_iterator có thể đọc và ghi, cho phép bạn thay đổi giá trị các phần tử khi duyệt ngược.
- const_reverse_iterator (phiên bản const): Trả về một const_reverse_iterator, chỉ cho phép bạn đọ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 std::list là một đối tượng
const
.
Đặc điểm
- Duyệt ngược:
rbegin()
cho phép bạn duyệt các phần tử theo thứ tự đảo ngược, bắt đầu từ phần tử cuối cùng. - Dereferencing: 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ử
++
: Toán tử++
trên reverse iterator sẽ di chuyển iterator đến phần tử trước đó trong std::list (theo thứ tự thông thường). - Kết hợp với
rend()
:rbegin()
thường được sử dụng cùng vớirend()
để duyệt ngược qua toàn bộ std::list.rend()
trả về reverse iterator trỏ đến phần tử "past-the-end" ở phía trước phần tử đầu tiên. - noexcept: Cả hai phiên bản của
rbegin()
đều được đánh dấu lànoexcept
, nghĩa là chúng được đảm bảo không ném ra ngoại lệ nào. - Không làm thay đổi danh sách: Gọi
rbegin()
không làm thay đổi nội dung hay trạng thái của std::list. - Độ phức tạp:
O(1)
- thời gian hằng số.
Ví dụ
#include <iostream>
#include <list>
#include <algorithm>
int main() {
std::list<int> mylist = {1, 2, 3, 4, 5};
// Tìm phần tử đầu tiên từ cuối lên có giá trị lớn hơn 2
auto it = std::find_if(mylist.rbegin(), mylist.rend(), [](int n){ return n > 2; });
if (it != mylist.rend()) {
std::cout << "First element from the end greater than 2: " << *it << '\n'; // Output: 3
}
return 0;
}
Các hàm liên quan
rend | Trả về một reverse_iterator trỏ đến phần tử trước phần tử đầu tiên của std::list (theo thứ tự thông thường) |
begin | Trả về một iterator trỏ đến phần tử đầu tiên trong list |
end | Trả về một iterator trỏ đến vị trí sau phần tử cuối cùng trong std::list |