Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ STL में bitset::flip() फंक्शन


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

व्याख्या

  1. bit1.flip(): कोई पैरामीटर नहीं - सभी बिट्स फ्लिप होते हैं: 100110 → 011001
  2. 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 के साथ मास्क लागू करें
  1. - C++ STL में map::max_size()

    इस लेख में हम C++ STL में map::max_size() फंक्शन के काम, सिंटैक्स और उदाहरणों पर चर्चा करेंगे। C++ STL में Map क्या है? मैप्स एसोसिएटिव कंटेनर होते हैं, जो की-वैल्यू और मैप्ड वैल्यू के संयोजन से बने एलिमेंट्स को एक विशिष्ट क्रम में संग्रहीत करने की सुविधा प्रदान करते हैं। एक मैप कंटेनर में डेटा आं

  1. - C++ STL में set बनाम unordered_set - अंतर और उपयोग

    Set क्या है? Set एक एसोसिएटिव कंटेनर (associative container) है जिसमें Key प्रकार की अनुक्रमित (sorted) अद्वितीय (unique) वस्तुएं होती हैं। प्रत्येक तत्व केवल एक बार आ सकता है, डुप्लिकेट अनुमत नहीं हैं। उपयोगकर्ता किसी भी क्रम में तत्व डाल सकता है, लेकिन set स्वचालित रूप से क्रमबद्ध डेटा लौटाता है।

  1. C++ STL में स्टैक (3.5) C++ STL में स्टैक (3.5)

    C++ STL में, स्टैक का उपयोग एक कंटेनर के रूप में किया जाता है जिसे LIFO संरचना के रूप में कार्यान्वित किया जाता है। LIFO का अर्थ है लास्ट इन फर्स्ट आउट। स्टैक को किताबों के ढेर के रूप में देखा जा सकता है जिसमें किताबें एक के ऊपर एक व्यवस्थित होती हैं और अंत में डाली गई किताब सबसे पहले हटाई जाएगी इसल