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

ตั้งค่าฟังก์ชัน crbegin() และ crend() ใน C++ STL


ในบทความนี้เราจะพูดถึงฟังก์ชัน set::crbegin() และ set::crend() ใน C++ STL, ไวยากรณ์, การทำงาน และค่าที่ส่งคืน

การตั้งค่าใน C++ STL คืออะไร

ชุดใน C++ STL คือคอนเทนเนอร์ที่ต้องมีองค์ประกอบที่ไม่ซ้ำกันในลำดับทั่วไป ชุดต้องมีองค์ประกอบที่ไม่ซ้ำกันเนื่องจากค่าขององค์ประกอบระบุองค์ประกอบ เมื่อเพิ่มค่าในคอนเทนเนอร์ชุดแล้วจะแก้ไขในภายหลังไม่ได้ แม้ว่าเราจะยังสามารถลบหรือเพิ่มค่าลงในชุดได้ ชุดถูกใช้เป็นแผนผังการค้นหาแบบไบนารี

ชุดอะไร::crbegin()?

ฟังก์ชัน crbegin() เป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งกำหนดไว้ในไฟล์ส่วนหัว crbegin() หมายถึงตัววนซ้ำเริ่มต้นแบบย้อนกลับคงที่ หมายถึงการย้อนกลับของ cbegin ซึ่งเป็นตัววนซ้ำเริ่มต้นคงที่ กล่าวคือ ฟังก์ชัน crbegin() จะส่งคืนตัววนซ้ำซึ่งชี้ไปที่องค์ประกอบสุดท้ายของคอนเทนเนอร์ชุดที่เกี่ยวข้องกับฟังก์ชัน เช่นเดียวกับตัววนซ้ำอื่น ๆ สามารถใช้เพื่อแก้ไขชุดได้ สามารถใช้เพื่อข้ามผ่านชุดคอนเทนเนอร์ได้

ไวยากรณ์

constant_iterator name_of_set.crbegin();

พารามิเตอร์

ฟังก์ชันนี้ไม่ยอมรับพารามิเตอร์ใดๆ

คืนค่า

ฟังก์ชันนี้ส่งคืนตัววนซ้ำซึ่งชี้ไปที่องค์ประกอบสุดท้ายของคอนเทนเนอร์ที่ตั้งไว้

ตัวอย่าง

Input: set<int> myset = {1, 2, 3, 4, 5};
   myset.crbegin();
Output: 5

ตัวอย่าง

#include <bits/stdc++.h>
using namespace std;
int main(){
   int arr[] = {1, 2, 3, 4, 5};
   set<int> ch(arr, arr + 5);
   for (auto i = ch.crbegin(); i!= ch.crend(); i++)
      cout << *i << " ";
   return 0;
}

ผลลัพธ์

หากเรารันโค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้

5 4 3 2 1

ชุดอะไร::crend()

ฟังก์ชัน crend() เป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งกำหนดไว้ในไฟล์ส่วนหัว crend() หมายถึงตัววนซ้ำสิ้นสุดแบบคงที่ หมายถึงการย้อนกลับของ cend ซึ่งเป็นตัววนซ้ำสิ้นสุดคงที่ กล่าวคือ ฟังก์ชัน crend() จะส่งคืนตัววนซ้ำซึ่งชี้ไปยังตำแหน่งก่อนตำแหน่งแรกของคอนเทนเนอร์ชุดที่เกี่ยวข้องกับ ฟังก์ชั่น. เช่นเดียวกับตัววนซ้ำอื่น ๆ สามารถใช้เพื่อแก้ไขชุดได้ สามารถใช้เพื่อข้ามผ่านชุดคอนเทนเนอร์ได้

ไวยากรณ์

constant_iterator name_of_set.crend();

พารามิเตอร์

ฟังก์ชันนี้ไม่ยอมรับพารามิเตอร์ใดๆ

คืนค่า

ฟังก์ชันนี้ส่งคืนตัววนซ้ำซึ่งชี้ไปยังตำแหน่งก่อนตำแหน่งแรกของชุดคอนเทนเนอร์ที่เชื่อมโยงกับฟังก์ชัน

ตัวอย่าง

Input: set<int> myset = {1, 2, 3, 4, 5};
myset.crend();
Output: 9 //random number before the first element in the set container.

ตัวอย่าง

#include <bits/stdc++.h>
using namespace std;
int main(){
   int arr[] = {3, 5, 8, 1, 9};
   set<int> ch(arr, arr + 5);
   for(auto i = ch.crbegin(); i!= ch.crend(); i++)
      cout << *i<< " ";
   return 0;
}

ผลลัพธ์

หากเรารันโค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้

9 8 5 3 1