ในบทความนี้เราจะพูดถึงการทำงาน ไวยากรณ์และตัวอย่างของฟังก์ชัน list::rbegin() และ list::rend() ใน C++ STL
รายการใน STL คืออะไร
รายการเป็นโครงสร้างข้อมูลที่อนุญาตให้แทรกและลบเวลาคงที่ได้ทุกที่ตามลำดับ รายการถูกนำไปใช้เป็นรายการที่เชื่อมโยงเป็นสองเท่า รายการอนุญาตการจัดสรรหน่วยความจำที่ไม่ต่อเนื่องกัน List ทำการดึงการแทรกและการย้ายองค์ประกอบได้ดีกว่าในตำแหน่งใดๆ ในคอนเทนเนอร์มากกว่าอาร์เรย์ เวกเตอร์ และ deque ใน List การเข้าถึงโดยตรงไปยังองค์ประกอบนั้นช้าและ list เหมือนกับ forward_list แต่อ็อบเจ็กต์รายการไปข้างหน้าเป็นรายการที่เชื่อมโยงเดี่ยวและสามารถทำซ้ำได้เท่านั้น
รายการ::rbegin() คืออะไร
list::rbegin() เป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งประกาศไว้ในไฟล์ส่วนหัว rbegin() เป็นฟังก์ชันเริ่มต้นย้อนกลับ rebegin() ส่งคืนตัววนซ้ำแบบย้อนกลับซึ่งชี้ไปที่องค์ประกอบสุดท้ายของรายการ Reverse iterator คือตัววนซ้ำที่เคลื่อนที่ในทิศทางย้อนกลับ โดยเริ่มจากจุดสิ้นสุดและจะเคลื่อนที่ไปยังจุดเริ่มต้น อย่างไรก็ตาม back() ยังส่งคืนองค์ประกอบสุดท้าย แต่ไม่เหมือนกับตัววนซ้ำธรรมดา ตัววนซ้ำสองทิศทางนี้จะเคลื่อนที่ไปในทิศทางย้อนกลับ
ไวยากรณ์
list_container1.rbegin();
พารามิเตอร์
ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ
ตัวอย่าง
Input: list<int> List_container = {10, 11, 13, 15}; List_container.rbegin(); Output: List= 15
ผลตอบแทนที่ได้รับ
ฟังก์ชันนี้จะคืนค่าตัววนซ้ำย้อนกลับที่ชี้ไปยังองค์ประกอบสุดท้ายของรายการ Reverse iterator คือตัววนซ้ำที่เคลื่อนที่ในทิศทางย้อนกลับ
ตัวอย่าง
#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; }
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
List is: 40 30 20 10
รายการ::rend() คืออะไร
list::rend() เป็นฟังก์ชันในตัวใน C++ STL ซึ่งประกาศไว้ในไฟล์ส่วนหัว Rend() เป็นฟังก์ชันย้อนกลับ Rend() ส่งคืนตัววนซ้ำแบบย้อนกลับซึ่งชี้ไปที่ตำแหน่งก่อนองค์ประกอบแรกของคอนเทนเนอร์รายการที่เกี่ยวข้อง Reverse iterator คือตัววนซ้ำที่เคลื่อนที่ในทิศทางย้อนกลับ โดยเริ่มจากจุดสิ้นสุดและจะเคลื่อนที่ไปยังจุดเริ่มต้น อย่างไรก็ตาม back() ยังส่งคืนองค์ประกอบสุดท้าย แต่ไม่เหมือนกับตัววนซ้ำธรรมดา ตัววนซ้ำสองทิศทางนี้จะเคลื่อนที่ไปในทิศทางย้อนกลับ
ไวยากรณ์
list_container1.rend();
ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ
ตัวอย่าง
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
ผลตอบแทนที่ได้รับ
ฟังก์ชันนี้ส่งคืนตัววนซ้ำแบบย้อนกลับซึ่งชี้ไปที่องค์ประกอบก่อนองค์ประกอบแรกในรายการ Reverse iterator คือตัววนซ้ำที่เคลื่อนที่ในทิศทางย้อนกลับ
ตัวอย่าง
#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; }
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
List is: 40 30 20 10