bitset::flip() फंक्शन क्या है?
bitset::flip() C++ STL (स्टैंडर्ड टेम्पलेट लाइब्रेरी) का एक इनबिल्ट मेथड है। यह कॉलिंग बिटसेट के बिट्स को फ्लिप करता है। जब कोई पैरामीटर पास नहीं किया जाता तो यह मेथड सभी 0 को 1 में और सभी 1 को 0 में बदल देता है, यानी कॉलिंग बिटसेट के प्रत्येक बिट को उलट देता है।
यदि कोई पैरामीटर पास किया जाता है, तो flip मेथड केवल nth बिट को फ्लिप करेगा जहां n पास किया गया पूर्णांक है। उदाहरण के लिए, यदि 5 पास किया जाता है तो flip मेथड कॉलिंग बिटसेट के 5वें बिट को फ्लिप करेगा।
सिंटैक्स
bitset_name.flip() // सभी बिट्स फ्लिप करें bitset_name.flip(size_t pos) // केवल pos位置 का बिट फ्लिप करें
नमूना
प्रारंभिक बिटसेट: 011001 पैरामीटर के बिना flip() लागू करने के बाद: 100110 पैरामीटर 6 के साथ flip() लागू करने के बाद: 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
व्याख्या
- bit1.flip(): कोई पैरामीटर नहीं - सभी बिट्स फ्लिप होते हैं:
100110→011001 - bit2.flip(7): 7वां बिट (0-इंडेक्स्ड) फ्लिप होता है:
0100001111→0110001111(7वां बिट 0 से 1 हो गया)
महत्वपूर्ण बिंदु
- हेडर:
<bitset> - पैरामीटर के बिना: सभी बिट्स उलट देता है, नया बिटसेट लौटाता है
- पैरामीटर के साथ: केवल निर्दिष्ट स्थिति का बिट उलट देता है
- पोजीशन 0-इंडेक्स्ड है (सबसे कम महत्वपूर्ण बिट = पोजीशन 0)
- यदि पोजीशन आउट ऑफ रेंज है तो
std::out_of_rangeएक्सेप्शन फेंकता है
व्यावहारिक उपयोग
// फ्लैग्स टॉगल करना
bitset<32> flags;
flags.set(5); // 5वां बिट सेट करें
flags.flip(5); // 5वां बिट टॉगल करें (अब 0)
flags.flip(); // सभी फ्लैग्स टॉगल करें
// मास्क ऑपरेशन्स
bitset<8> mask("11110000");
bitset<8> data("10101010");
data.flip(); // डेटा इनवर्ट करें
data ^= mask; // XOR के साथ मास्क लागू करें