Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

รายการ rbegin() และฟังก์ชัน rend() ใน C++ STL


ในบทความนี้เราจะพูดถึงการทำงาน ไวยากรณ์และตัวอย่างของฟังก์ชัน 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