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

Hàm list::rbegin() và list::rend() trong C++ STL


Trong bài viết này, chúng ta sẽ thảo luận về cách hoạt động, cú pháp và ví dụ của các hàm list::rbegin() và list::rend() trong C++ STL.

List trong STL là gì?

List là một cấu trúc dữ liệu cho phép chèn và xóa ở bất kỳ vị trí nào trong chuỗi với thời gian không đổi. List được triển khai dưới dạng danh sách liên kết đôi. List cho phép cấp phát bộ nhớ không liên tục. List hoạt động tốt hơn array, vector và deque khi chèn, trích xuất và di chuyển phần tử ở bất kỳ vị trí nào trong container. Trong List, truy cập trực tiếp vào phần tử chậm hơn và list tương tự như forward_list, nhưng forward_list là danh sách liên kết đơn và chỉ có thể lặp tiến.

list::rbegin() là gì?

list::rbegin() là hàm built-in trong C++ STL được khai báo trong header <list>. Đây là hàm reverse begin, trả về reverse iterator trỏ đến phần tử cuối cùng của list. Reverse iterator di chuyển ngược, bắt đầu từ cuối về đầu. Khác với back() cũng trả về phần tử cuối nhưng iterator này cho phép duyệt ngược.

Cú pháp

list_container1.rbegin();

Tham số

Hàm này không nhận tham số.

Ví dụ

Input: list<int> List_container = {10, 11, 13, 15}; List_container.rbegin(); Output: List = 15

Giá trị trả về

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

Ví dụ hoàn chỉnh

#include <bits/stdc++.h>
using namespace std;
int main() {
    list<int> myList = { 10, 20, 30, 40 };
    cout << "List is: ";
    for (auto i = myList.rbegin(); i != myList.rend(); ++i)
        cout << *i << " ";
    return 0;
}

Kết quả

List is: 40 30 20 10

list::rend() là gì?

list::rend() là hàm built-in trong C++ STL được khai báo trong header <list>. Đây là hàm reverse end, trả về reverse iterator trỏ đến vị trí trước phần tử đầu tiên của list. Reverse iterator di chuyển ngược từ cuối về đầu.

Cú pháp

list_container1.rend();

Tham số

Hàm này không nhận tham số.

Ví dụ

Input: list<int> List_container = {10, 11, 13, 15}; List_container.rend(); Output: List = 5 // giá trị ngẫu nhiên trước phần tử đầu tiên

Giá trị trả về

Hàm trả về reverse iterator trỏ đến phần tử trước phần tử đầu tiên trong list.

Ví dụ hoàn chỉnh

#include <bits/stdc++.h>
using namespace std;
int main() {
    list<int> myList = { 10, 20, 30, 40 };
    cout << "List is : ";
    for (auto i = myList.rbegin(); i != myList.rend(); ++i)
        cout << *i << " ";
    return 0;
}

Kết quả

List is: 40 30 20 10