ในบทความนี้เราจะพูดถึงฟังก์ชัน 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