Trong bài viết này, chúng ta sẽ thảo luận về cách làm việc, cú pháp và ví dụ của các hàm list ::rbegin () và list ::rend () trong C ++ STL.
Danh sách trong STL là gì?
Danh sách là một cấu trúc dữ liệu cho phép chèn và xóa theo thời gian liên tục ở bất kỳ đâu theo trình tự. Danh sách được triển khai dưới dạng danh sách được liên kết kép. Danh sách cho phép phân bổ bộ nhớ không liền kề. Danh sách thực hiện trích xuất chèn và di chuyển phần tử ở bất kỳ vị trí nào trong vùng chứa tốt hơn so với mảng, vectơ và deque. Trong Danh sách, truy cập trực tiếp vào phần tử rất chậm và danh sách giống như forward_list, nhưng các đối tượng danh sách chuyển tiếp là danh sách được liên kết đơn và chúng chỉ có thể được lặp lại cho tới.
Danh sách ::rbegin () là gì?
list ::rbegin () là một hàm có sẵn trong C ++ STL được khai báo trong tệp tiêu đề. rbegin () là một hàm bắt đầu ngược lại. rebegin () trả về một trình lặp ngược đang trỏ đến phần tử cuối cùng của danh sách. Trình lặp ngược là một trình lặp di chuyển theo hướng ngược lại, bắt đầu từ điểm cuối và sẽ di chuyển về phía đầu. Tuy nhiên back () cũng trả về phần tử cuối cùng nhưng không giống như trình vòng lặp đơn giản, trình vòng lặp hai chiều này di chuyển theo hướng lùi lại.
Cú pháp
list_container1.rbegin();
Tham số
Hàm này không chấp nhận tham số.
Ví dụ
Input: list<int> List_container = {10, 11, 13, 15}; List_container.rbegin(); Output: List= 15
Giá trị trả lại
Hàm này trả về một trình lặp ngược trỏ đến phần tử cuối cùng của danh sách. Trình lặp ngược là một trình lặp di chuyển theo hướng lùi lại.
Ví dụ
#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; }
Đầu ra
Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -
List is: 40 30 20 10
Danh sách ::rend () là gì?
list ::rend () là một hàm tích hợp trong C ++ STL được khai báo trong tệp tiêu đề. rend () là một hàm kết thúc ngược lại. rend () trả về một trình lặp ngược đang trỏ đến vị trí trước phần tử đầu tiên của vùng chứa danh sách được liên kết. Trình lặp ngược là một trình lặp di chuyển theo hướng ngược lại, bắt đầu từ điểm cuối và sẽ di chuyển về phía đầu. Tuy nhiên back () cũng trả về phần tử cuối cùng nhưng không giống như trình vòng lặp đơn giản, trình vòng lặp hai chiều này di chuyển theo hướng lùi lại.
Cú pháp
list_container1.rend ();
Hàm này không chấp nhận tham số.
Ví dụ
Input: list<int> List_container= { 10, 11, 13, 15}; List_container.rend(); Output: List= 5 //will display random value which is before the beginning of the list
Giá trị trả lại
Hàm này trả về một trình lặp ngược đang trỏ đến phần tử trước phần tử đầu tiên trong danh sách. Trình lặp ngược là một trình lặp di chuyển theo hướng lùi lại.
Ví dụ
#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; }
Đầu ra
Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -
List is: 40 30 20 10