std::bitset<N>::operator[]
Von cppreference.com
| bool operator[]( std::size_t pos ) const; |
(1) | (constexpr seit C++11) |
| reference operator[]( std::size_t pos ); |
(2) | (constexpr seit C++23) |
Greift auf das Bit an der Position pos zu. Die erste Version gibt den Wert des Bits zurück, die zweite Version gibt ein Objekt vom Typ std::bitset::reference zurück, das die Modifikation des Wertes erlaubt.
Im Gegensatz zu test() werden keine Ausnahmen ausgelöst: Das Verhalten ist undefiniert, wenn pos außerhalb der Grenzen liegt.
Inhalt |
[edit] Parameter
| pos | - | Position des zurückzugebenden Bits |
[edit] Rückgabewert
1) Der Wert des angeforderten Bits.
2) Ein Objekt vom Typ std::bitset::reference, das das Schreiben an das angeforderte Bit ermöglicht.
[edit] Ausnahmen
(keine)
[edit] Beispiel
Führen Sie diesen Code aus
#include <bitset> #include <cstddef> #include <iostream> int main() { std::bitset<8> b1{0b00101010}; // binary literal for 42 for (std::size_t i = 0; i < b1.size(); ++i) std::cout << "b1[" << i << "]: " << b1[i] << '\n'; b1[0] = true; // modifies the first bit through bitset::reference std::cout << "After setting bit 0, b1 holds " << b1 << '\n'; }
Ausgabe
b1[0]: 0 b1[1]: 1 b1[2]: 0 b1[3]: 1 b1[4]: 0 b1[5]: 1 b1[6]: 0 b1[7]: 0 After setting bit 0, b1 holds 00101011
[edit] Fehlerberichte
Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| LWG 11 | C++98 | 1. Die Beschreibung fehlte im C++-Standard 2. Es gab nur den nicht-const-Überladungsoperator |
1. Beschreibung hinzugefügt 2. Const-Überladungsoperator hinzugefügt |
| LWG 907 | C++98 | Das Verhalten beim Lesen des Bits an der Position pos war äquivalent zu dem von test(pos), aber test() kann Ausnahmen auslösen |
vermeidet die Erwähnung von test() |
[edit] Siehe auch
| greift auf ein bestimmtes Bit zu (public member function) |