เมธอด bitset::flip() เป็นเมธอดในตัวของ C++ STL (Standard Template Library) มันกลับค่าบิตของ bitset ที่เรียกใช้ เมธอดนี้จะกลับ 0 ทั้งหมดเป็น 1 และ 1 ทั้งหมดเป็น 0 ซึ่งหมายถึงการกลับค่าบิตทุกตัวของ bitset ที่เรียกใช้ เมื่อไม่มีการส่งพารามิเตอร์
หากมีการส่งพารามิเตอร์ เมธอด flip จะกลับค่าบิตที่ n เท่านั้น สำหรับจำนวนเต็ม n ที่ส่งเข้ามา ตัวอย่างเช่น หากส่ง 5 จะกลับค่าบิตที่ 5 ของ bitset ที่เรียกใช้
ไวยากรณ์
bitset_name.flip(int pos)
ตัวอย่าง
Initial bitset: 011001
หลังจากใช้ฟังก์ชัน flip โดยไม่ส่งพารามิเตอร์: 100110
หลังจากใช้ฟังก์ชัน flip พร้อมพารามิเตอร์ 6: 011000
ตัวอย่างโค้ด
#include <bits/stdc++.h>
using namespace std;
int main() {
bitset<6> bit1(string("100110"));
bitset<10> bit2(string("0100001111"));
cout << bit1 << " after applying flip() function with nothing passed as parameter returns " << bit1.flip() << endl;
cout << bit2 << " after applying flip() function with 7 passed as parameter returns " << bit2.flip(7);
return 0;
}
ผลลัพธ์
100110 after applying flip() function with nothing passed as parameter returns 011001 0100001111 after applying flip() function with 7 passed as parameter returns 0110001111