ไลบรารี C ++ - <set>
บทนำ
ก setเป็นคอนเทนเนอร์ Associative ที่มีชุดของวัตถุเฉพาะประเภท Key แต่ละองค์ประกอบอาจเกิดขึ้นเพียงครั้งเดียวดังนั้นจึงไม่อนุญาตให้มีการซ้ำกัน
คอนเทนเนอร์ Associative มีสี่ประเภท ได้แก่ set, multiset, map และ multimap
ไม่สามารถแก้ไขค่าขององค์ประกอบในชุดหนึ่งครั้งในคอนเทนเนอร์กล่าวคือองค์ประกอบจะเป็นค่าคงที่เสมอ แต่สามารถใส่หรือถอดออกจากภาชนะได้
โดยทั่วไปคอนเทนเนอร์ set จะช้ากว่าคอนเทนเนอร์ unordered_set ในการเข้าถึงแต่ละองค์ประกอบด้วยคีย์ แต่อนุญาตให้มีการวนซ้ำโดยตรงกับชุดย่อยตามลำดับ
คำจำกัดความ
ด้านล่างนี้คือคำจำกัดความของ std :: set จากไฟล์ส่วนหัว <set>
template <
class Key,
class Compare = std::less<Key>,
class Allocator = std::allocator<Key>
> class set;
พารามิเตอร์
Key - ประเภทขององค์ประกอบที่มีอยู่
คีย์อาจถูกแทนที่ด้วยประเภทข้อมูลอื่น ๆ รวมถึงประเภทที่ผู้ใช้กำหนด
ประเภทสมาชิก
ประเภทสมาชิกต่อไปนี้สามารถใช้เป็นพารามิเตอร์หรือประเภทการส่งคืนโดยฟังก์ชันสมาชิก
ซีเนียร์ | ประเภทสมาชิก | คำจำกัดความ |
---|---|---|
1 | key_type | สำคัญ |
2 | value_type | สำคัญ |
3 | เอกสารอ้างอิง | ผู้จัดสรร :: ข้อมูลอ้างอิง value_type & |
4 | const_reference | ตัวจัดสรร :: const_reference const value_type & |
5 | ตัวชี้ | ตัวจัดสรร :: ตัวชี้ std :: assignator_traits <Allocator> :: pointer |
6 | const_pointer | ตัวจัดสรร :: const_pointer std :: assignator_traits <Allocator> :: const_pointer |
7 | iterator | BidirectionalIterator |
8 | const_iterator | BidirectionalIterator คงที่ |
9 | reverse_iterator | std :: reverse_iterator <iterator> |
10 | const_reverse_iterator | std :: reverse_iterator <const_iterator> |
11 | size_type | ประเภทจำนวนเต็มที่ไม่ได้ลงชื่อ (std :: size_t) |
12 | different_type | ประเภทจำนวนเต็มที่ลงนาม (std :: ptrdiff_t) |
13 | key_compare | เปรียบเทียบ |
14 | value_compare | เปรียบเทียบ |
15 | จัดสรร _type | ผู้จัดสรร |
ฟังก์ชั่นจาก <set>
ด้านล่างนี้คือรายการวิธีการทั้งหมดจากส่วนหัว <set>
ฟังก์ชั่นสมาชิก
DEFAULT MEMBER FUNCTIONS
ซีเนียร์ | วิธีการและคำอธิบาย |
---|---|
1 | ตัวสร้างเริ่มต้น
สร้างคอนเทนเนอร์ชุด |
2 | ตัวสร้างช่วง
สร้างคอนเทนเนอร์ชุดที่มีเนื้อหาของช่วง |
3 | คัดลอกตัวสร้าง
สร้างคอนเทนเนอร์ชุดด้วยสำเนาของชุดอื่น |
4 | ย้ายตัวสร้าง
สร้างคอนเทนเนอร์ชุดที่มีเนื้อหาของชุดอื่นโดยใช้ความหมายการย้าย |
5 | ตัวสร้างรายการตัวเริ่มต้น
สร้างคอนเทนเนอร์ชุดที่มีเนื้อหาของรายการ inializer |
6 | (ผู้ทำลาย)
ทำลายชุดคอนเทนเนอร์ |
7 | ตัวดำเนินการ =
กำหนดค่าให้กับชุดคอนเทนเนอร์ |
ITERATORS
ซีเนียร์ | วิธีการและคำอธิบาย |
---|---|
1 | set :: เริ่มต้น
ส่งคืนตัววนซ้ำเพื่อเริ่มต้น |
2 | set :: cbegin
ส่งคืนตัวทำซ้ำ const เพื่อเริ่มต้น |
3 | ชุด :: จบ
ส่งคืนตัววนซ้ำเพื่อสิ้นสุด |
4 | ชุด :: cend
ส่งคืนตัววนซ้ำ const เพื่อสิ้นสุด |
5 | ชุด :: rbegin
ส่งคืนตัววนซ้ำย้อนกลับเพื่อย้อนกลับการเริ่มต้น |
6 | ชุด :: crbegin
ส่งคืนตัววนซ้ำกลับ const เพื่อย้อนกลับจุดเริ่มต้น |
7 | set :: rend
ส่งคืนตัววนซ้ำแบบย้อนกลับเพื่อย้อนกลับ |
8 | ชุด :: crend
ส่งคืนตัววนซ้ำแบบย้อนกลับ const เพื่อย้อนกลับ |
ความจุ
ซีเนียร์ | วิธีการและคำอธิบาย |
---|---|
1 | set :: ว่าง
ส่งคืนเมื่อคอนเทนเนอร์ชุดว่างเปล่า |
2 | ชุด :: ขนาด
ส่งคืนจำนวนองค์ประกอบใน set container |
3 | ตั้งค่า :: max_size
ส่งคืนจำนวนองค์ประกอบสูงสุดที่ set container สามารถรองรับได้ |
MODIFIERS
ซีเนียร์ | วิธีการและคำอธิบาย |
---|---|
1 | set :: ชัดเจน
ลบองค์ประกอบทั้งหมดออกจากคอนเทนเนอร์ชุด |
2 | set :: แทรก
แทรกองค์ประกอบใหม่ในชุดคอนเทนเนอร์ |
3 | set :: emplace
แทรกองค์ประกอบใหม่ในชุดหากไม่ซ้ำกัน |
4 | set :: emplace_hint
แทรกองค์ประกอบใหม่ในชุดหากไม่ซ้ำกันพร้อมคำใบ้เกี่ยวกับตำแหน่งการแทรก |
5 | set :: ลบ
ลบองค์ประกอบเดียวหรือช่วงขององค์ประกอบออกจากคอนเทนเนอร์ชุด |
6 | ตั้งค่า :: แลกเปลี่ยน
เปลี่ยนเนื้อหาของคอนเทนเนอร์ตามเนื้อหาของคอนเทนเนอร์ชุดอื่นที่เป็นประเภทเดียวกัน |
ค้นหา
ซีเนียร์ | วิธีการและคำอธิบาย |
---|---|
1 | ตั้ง :: นับ
ส่งคืนจำนวนองค์ประกอบที่มีค่าที่ตรงกันในคอนเทนเนอร์ชุด |
2 | set :: หา
ค้นหา set container เพื่อหาค่าและส่งคืน iterator หากพบมิฉะนั้นจะคืนค่า iterator เพื่อ set :: end |
3 | set :: lower_bound
ส่งคืนตัววนซ้ำที่ชี้ไปยังองค์ประกอบแรกใน set container ซึ่งไม่ถือว่าไปก่อนค่า |
4 | ชุด :: upper_bound
ส่งคืนตัววนซ้ำที่ชี้ไปยังองค์ประกอบแรกในคอนเทนเนอร์ชุดซึ่งถือว่าเป็นไปตามค่า |
5 | ตั้งค่า :: ช่วงที่เท่ากัน
ส่งคืนขอบเขตของช่วงที่มีองค์ประกอบทั้งหมดใน set container ที่เทียบเท่ากับ value |
OBSERVERS
ซีเนียร์ | วิธีการและคำอธิบาย |
---|---|
1 | ชุด :: key_comp
ส่งคืนสำเนาของวัตถุเปรียบเทียบที่ใช้โดย set container |
2 | set :: value_comp
ส่งคืนสำเนาของวัตถุเปรียบเทียบที่ใช้โดย set container |
ผู้จัดสรร
ซีเนียร์ | วิธีการและคำอธิบาย |
---|---|
1 | set :: get_allocator
ส่งคืนสำเนาของอ็อบเจ็กต์ตัวจัดสรรที่เชื่อมโยงกับ set container |