Namensräume
Varianten
Aktionen

std::bitset<N>::test

Von cppreference.com
< cpp‎ | utility‎ | bitset
 
 
Dienstprogramm-Bibliotheken
Sprachunterstützung
Typunterstützung (Basistypen, RTTI)
Bibliotheks-Feature-Test-Makros (C++20)
Programm-Dienstprogramme
Variadische Funktionen
Coroutine-Unterstützung (C++20)
Vertragsunterstützung (C++26)
Drei-Wege-Vergleich
(C++20)
(C++20)(C++20)(C++20)  
(C++20)(C++20)(C++20)

Allgemeine Hilfsmittel
Relationale Operatoren (in C++20 veraltet)
 
 
bool test( std::size_t pos ) const;
(constexpr seit C++23)

Gibt den Wert des Bits an der Position pos zurück (gezählt ab 0).

Im Gegensatz zu operator[] führt es eine Bereichsprüfung durch.

Inhalt

[bearbeiten] Parameter

pos - Position des zurückzugebenden Bits (gezählt ab 0)

[bearbeiten] Rückgabewert

true, wenn das angeforderte Bit gesetzt ist, andernfalls false.

[bearbeiten] Ausnahmen

Wirft std::out_of_range, wenn pos keiner gültigen Bitposition entspricht.

[bearbeiten] Beispiel

#include <bit>
#include <bitset>
#include <cassert>
#include <iostream>
#include <stdexcept>
 
int main()
{
    std::bitset<10> b1("1111010000");
 
    std::size_t idx = 0;
    while (idx < b1.size() && !b1.test(idx))
        ++idx;
 
    assert(static_cast<int>(idx) == std::countr_zero(b1.to_ulong()));
 
    if (idx < b1.size())
        std::cout << "The first set bit is at index " << idx << '\n';
    else
        std::cout << "no set bits\n";
 
    try
    {
        std::bitset<0B10'1001'1010> bad;
        if (bad.test(bad.size()))
            std::cout << "Expect unexpected!\n";
    }
    catch (std::out_of_range const& ex)
    {
        std::cout << "Exception: " << ex.what() << '\n';
    }
}

Mögliche Ausgabe

The first set bit is at index 4
Exception: bitset::test: __position (which is 666) >= _Nb (which is 666)

[bearbeiten] 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 2250 C++98 war das Verhalten undefiniert, wenn pos
keiner gültigen Bitposition entsprach
wirft in diesem Fall immer eine
Ausnahme

[bearbeiten] Siehe auch

greift auf ein bestimmtes Bit zu
(public member function) [edit]
(C++20)
zählt die Anzahl der 1-Bits in einer vorzeichenlosen Ganzzahl
(Funktion-Template) [bearbeiten]
prüft, ob eine Zahl eine ganzzahlige Zweierpotenz ist
(Funktion-Template) [bearbeiten]