ไลบรารี C ++ - <bitset>

บทนำ

Bitset แสดงลำดับขนาดคงที่ของNบิตและเก็บค่าเป็น 0 หรือ 1 ศูนย์หมายถึงค่าเป็นเท็จหรือบิตไม่ได้ตั้งค่าและค่าหนึ่งหมายถึงเป็นจริงหรือบิตถูกตั้งค่า คลาส Bitset จำลองอาร์เรย์ของค่าบูลีนที่มีประสิทธิภาพของพื้นที่โดยที่แต่ละองค์ประกอบใช้เพียงหนึ่งบิต

ในขณะที่มัน emulates อาร์เรย์ดัชนียังเริ่มต้นจาก0 THตำแหน่ง แต่ละบิตจากบิตเซ็ตสามารถเข้าถึงได้โดยใช้ตัวดำเนินการตัวห้อย ยกตัวอย่างเช่นในการเข้าถึงองค์ประกอบแรกของ bitset fooใช้foo [0]

คลาส Bitset จัดเตรียมคอนสตรัคเตอร์เพื่อสร้างบิตเซ็ตจากจำนวนเต็มและจากสตริง ขนาดของ bitset ได้รับการแก้ไขที่รวบรวมเวลา STL มีคลาสเวกเตอร์ <bool>ที่ให้ฟังก์ชันการปรับขนาดแบบไดนามิก

คำจำกัดความ

ด้านล่างนี้คือคำจำกัดความของ std :: bitset จากไฟล์ส่วนหัว <bitset>

template <size_t N> class bitset;

พารามิเตอร์

N - ขนาดของบิตเซ็ต

ประเภทสมาชิก

ประเภทสมาชิกต่อไปนี้สามารถใช้เป็นพารามิเตอร์หรือประเภทการส่งคืนโดยฟังก์ชันสมาชิก

ซีเนียร์ ประเภทสมาชิก คำจำกัดความ
1 เอกสารอ้างอิง คลาสพร็อกซีที่แสดงถึงการอ้างอิงถึงบิต

ฟังก์ชั่นจาก <bitset>

ด้านล่างนี้คือรายการวิธีการทั้งหมดจากส่วนหัว <bitset>

ตัวสร้าง

ซีเนียร์ วิธีการและคำอธิบาย
1 บิตเซ็ต :: บิตเซ็ต ()

สร้างคอนเทนเนอร์บิตเซ็ตและเริ่มต้นด้วยศูนย์

2 บิตเซ็ต :: บิตเซ็ต ()

สร้างภาชนะ bitset และเริ่มต้นมันมีค่าบิตของVal

3 บิตเซ็ต :: บิตเซ็ต ()

สร้างและเริ่มต้นคอนเทนเนอร์บิตเซ็ตจากอ็อบเจ็กต์สตริง C ++

4 บิตเซ็ต :: บิตเซ็ต ()

สร้างและเริ่มต้นคอนเทนเนอร์บิตเซ็ตจากสตริงสไตล์ c

ชั้นสมาชิก

ซีเนียร์ วิธีการและคำอธิบาย
1 บิตเซ็ต :: การอ้างอิง ()

ชั้นนี้จะถูกฝังอยู่ซึ่งมี L-ค่าที่สามารถกลับมาจากมาตรฐาน :: bitset :: ผู้ประกอบการ []

ตัวดำเนินการ Bitset

ซีเนียร์ วิธีการและคำอธิบาย
1 bitset :: ตัวดำเนินการ & =

ดำเนินการในระดับบิต AND บนอ็อบเจ็กต์บิตเซ็ตปัจจุบัน

2 bitset :: ตัวดำเนินการ | =

ดำเนินการตามบิตหรือการดำเนินการกับอ็อบเจ็กต์บิตเซ็ตปัจจุบัน

3 bitset :: ตัวดำเนินการ ^ =

ดำเนินการ XOR แบบบิตบนอ็อบเจ็กต์บิตเซ็ตปัจจุบัน

4 bitset :: ตัวดำเนินการ << =

ดำเนินการ SHIFT ทางซ้ายแบบบิตบนอ็อบเจ็กต์ bitset ปัจจุบัน

5 bitset :: ตัวดำเนินการ >> =

ดำเนินการ SHIFT ทางขวาในระดับบิตบนอ็อบเจ็กต์ bitset ปัจจุบัน

6 bitset :: ตัวดำเนินการ ~

ดำเนินการในระดับบิต NOT บนบิตเซ็ต

7 bitset :: ตัวดำเนินการ <<

ดำเนินการ SHIFT ด้านซ้ายแบบบิตบนบิตเซ็ต

8 bitset :: ตัวดำเนินการ >>

ดำเนินการ SHIFT ทางขวาในระดับบิตบนบิตเซ็ต

9 บิตเซ็ต :: ตัวดำเนินการ ==

ทดสอบว่าสองบิตเซ็ตเท่ากันหรือไม่

10 bitset :: ตัวดำเนินการ! =

ทดสอบว่าสองบิตเซ็ตเท่ากันหรือไม่

11 bitset :: ตัวดำเนินการ &

ดำเนินการในระดับบิต AND บนบิตเซ็ต

12 bitset :: ตัวดำเนินการ |

ดำเนินการบิตหรือการดำเนินการบนบิตเซ็ต

13 bitset :: ตัวดำเนินการ ^

ดำเนินการ XOR แบบบิตบนบิตเซ็ต

14 bitset :: ตัวดำเนินการ >>

สารสกัดจากไม่เกินNบิตจากเป็นและร้านค้าเข้า bitset อีกx

15 bitset :: ตัวดำเนินการ >>

แทรก bitset xกระแสตัวละครOS

ฟังก์ชั่นสมาชิก

ซีเนียร์ วิธีการและคำอธิบาย
1 บิตเซ็ต :: ทั้งหมด ()

ทดสอบว่ามีการตั้งค่าบิตทั้งหมดจากบิตเซ็ตหรือไม่

2 บิตเซ็ต :: ใด ๆ ()

ทดสอบว่ามีการตั้งค่าอย่างน้อยหนึ่งบิตจากบิตเซ็ตหรือไม่

3 บิตเซ็ต :: count ()

นับจำนวนชุดบิตจากบิตเซ็ต

4 bitset :: flip () บิตทั้งหมด

สลับบิตทั้งหมดจากบิตเซ็ต

5 bitset :: flip () บิตเดียว

สลับบิตเดียวจากบิตเซ็ต

6 บิตเซ็ต :: ไม่มี ()

ทดสอบว่าไม่ได้ตั้งค่าบิตทั้งหมดหรือไม่

7 bitset :: operator [] เวอร์ชันบูล

ส่งกลับค่าของบิตที่ตำแหน่งPOS

8 bitset :: operator [] เวอร์ชันอ้างอิง

ผลตอบแทนอ้างอิงของบิตที่ตำแหน่งPOS

9 bitset :: reset () บิตทั้งหมด

รีเซ็ตบิตเซ็ตทั้งหมดเป็นศูนย์

10 bitset :: reset () บิตเดียว

รีเซ็ตบิตเซ็ตบิตเดียวเป็นศูนย์

11 bitset :: set () บิตทั้งหมด

ตั้งค่าบิตทั้งหมดจากบิตเซ็ตเป็นหนึ่ง

12 bitset :: set () บิตเดียว

ชุดบิตเดียวจาก bitset อย่างใดอย่างหนึ่งอย่างใดอย่างหนึ่งหรือเป็นศูนย์

13 บิตเซ็ต :: ขนาด ()

รายงานขนาดของบิตเซ็ต

14 บิตเซ็ต :: ทดสอบ ()

ทดสอบว่า N th bit ถูกตั้งค่าหรือไม่

15 บิตเซ็ต :: to_string ()

แปลงวัตถุ bitset เป็นวัตถุสตริง

16 บิตเซ็ต :: to_ullong ()

แปลงบิตเซ็ตเป็น long long ที่ไม่ได้ลงนาม

17 บิตเซ็ต :: to_ulong ()

แปลงบิตเซ็ตเป็นแบบยาวที่ไม่ได้ลงนาม

ฟังก์ชันที่ไม่ใช่สมาชิก

ซีเนียร์ วิธีการและคำอธิบาย
1 บิตเซ็ต :: แฮช ()

ส่งคืนค่าแฮชตามบิตเซ็ตที่ระบุ