ในบทความนี้เราจะพูดถึงฟังก์ชัน set::cend() และ set::cbegin() ใน C++ STL ไวยากรณ์ การทำงาน และค่าที่ส่งคืน
การตั้งค่าใน C++ STL คืออะไร
ชุดใน C++ STL คือคอนเทนเนอร์ที่ต้องมีองค์ประกอบที่ไม่ซ้ำกันในลำดับทั่วไป ชุดต้องมีองค์ประกอบที่ไม่ซ้ำกันเนื่องจากค่าขององค์ประกอบระบุองค์ประกอบ เมื่อเพิ่มค่าในคอนเทนเนอร์ชุดแล้วจะแก้ไขในภายหลังไม่ได้ แม้ว่าเราจะยังสามารถลบหรือเพิ่มค่าลงในชุดได้ ชุดถูกใช้เป็นแผนผังการค้นหาแบบไบนารี
ชุดอะไร::cbegin():
ฟังก์ชัน cbegin() เป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งกำหนดไว้ในไฟล์ส่วนหัว ฟังก์ชันนี้ส่งคืนตัววนซ้ำคงที่ซึ่งชี้ไปที่องค์ประกอบแรกในคอนเทนเนอร์ที่ตั้งไว้ เนื่องจาก iterator ทั้งหมดใน set container เป็นตัววนซ้ำแบบคงที่ จึงไม่สามารถใช้เพื่อแก้ไขเนื้อหาทั้งหมดที่เราสามารถใช้เพื่อสำรวจระหว่างองค์ประกอบของ set container โดยการเพิ่มหรือลดการวนซ้ำ
ไวยากรณ์
constant_iterator name_of_set.cbegin();
พารามิเตอร์
This function does not accept any parameter.
คืนค่า
ฟังก์ชันนี้จะคืนค่า constant_iterator ซึ่งเลยจุดสิ้นสุดของลำดับ
ตัวอย่าง
Input: set<int> set_a = {18, 34, 12, 10, 44}; set_a.cbegin(); Output: Beginning element in the set container: 10
ตัวอย่าง
#include <iostream> #include <set> using namespace std; int main (){ set<int> set_a = {18, 34, 12, 10, 44}; cout << "Beginning element in the set container: "; cout<< *(set_a.cbegin()); return 0; }
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
Beginning element in the set container: 10
ตัวอย่าง
#include <iostream> #include <set> using namespace std; int main (){ set<int> set_a = {18, 34, 12, 10, 44}; cout << "set_a contains:"; for (auto it=set_a.cbegin(); it != set_a.cend(); ++it) cout << ' ' << *it; cout << '\n'; return 0; }
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
set_a contains: 10 12 18 34 44
ชุดอะไร::cend()
ฟังก์ชัน cend() เป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งกำหนดไว้ในไฟล์ส่วนหัว ฟังก์ชันนี้ส่งคืนตัววนซ้ำคงที่ขององค์ประกอบที่ผ่านองค์ประกอบสุดท้ายในคอนเทนเนอร์ที่ตั้งไว้ เนื่องจาก iterator ทั้งหมดใน set container เป็นตัว iterator คงที่ จึงไม่สามารถนำมาใช้เพื่อแก้ไขเนื้อหาทั้งหมดที่เราสามารถใช้ได้สำหรับการสำรวจระหว่างองค์ประกอบของ set container โดยการเพิ่มหรือลดการ iterator
ไวยากรณ์
constant_iterator name_of_set.cend();
พารามิเตอร์
ฟังก์ชันนี้ไม่ยอมรับพารามิเตอร์ใดๆ
คืนค่า
ฟังก์ชันนี้จะคืนค่า constant_iterator ซึ่งเลยจุดสิ้นสุดของลำดับ
ตัวอย่าง
Input: set<int> set_a = {18, 34, 12, 10, 44}; set_a.end(); Output: Past to end element: 5
set::cend() ใช้กับ cbegin() หรือ start() เพื่อวนซ้ำทั้งชุด เพราะมันชี้ไปที่องค์ประกอบที่ผ่านมาไปยังองค์ประกอบสุดท้ายในคอนเทนเนอร์
ตัวอย่าง
#include <iostream> #include <set> using namespace std; int main (){ set<int> set_a = {18, 34, 11, 10, 44}; cout << "Past to end element: "; cout<< *(set_a.cend()); return 0; }
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
Past to end element: 5 We will get a random value
ตัวอย่าง
#include <iostream> #include <set> using namespace std; int main (){ set<int> set_a = {18, 34, 12, 10, 44}; cout << " set_a contains:"; for (auto it= set_a.cbegin(); it != set_a.cend(); ++it) cout << ' ' << *it; cout << '\n'; return 0; }
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
set_a contains: 10 12 18 34 44