Namespaces
Variants

std::bitset<N>::operator[]

De es.cppreference.net
 
 
Biblioteca de utilidades
Soporte del lenguaje
Soporte de tipos (tipos básicos, RTTI)
Macros de prueba de características de biblioteca (C++20)
Utilidades de programa
Funciones variádicas
Soporte de corrutinas (C++20)
Soporte de contratos (C++26)
Comparación de tres vías
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Utilidades generales
Operadores relacionales (obsoleto en C++20)
 
 
bool operator[]( std::size_t pos ) const;
(1) (constexpr desde C++11)
reference operator[]( std::size_t pos );
(2) (constexpr desde C++23)

Accede al bit en la posición pos.

1) Devuelve el valor del bit.
2) Devuelve un objeto de tipo std::bitset::reference que permite la modificación del valor.

Si pos < size() es false, el comportamiento no está definido.

(hasta C++26)

Si pos < size() es false:

(desde C++26)

Parámetros

pos - posición del bit a devolver

Valor de retorno

1) El valor del bit solicitado.
2) Un objeto de tipo std::bitset::reference , que permite escribir en el bit solicitado.

Excepciones

No lanza nada.

Ejemplo

#include <bitset>
#include <cstddef>
#include <iostream>
int main()
{
    std::bitset<8> b1{0b00101010}; // literal binario para 42
    for (std::size_t i = 0; i < b1.size(); ++i)
        std::cout << "b1[" << i << "]: " << b1[i] << '\n';
    b1[0] = true; // modifica el primer bit mediante bitset::reference
    std::cout << "Después de establecer el bit 0, b1 contiene " << b1 << '\n';
}

Salida:

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

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares publicados anteriormente de C++.

DR Aplicado a Comportamiento publicado Comportamiento correcto
LWG 11 C++98 1. la descripción faltaba en el estándar de C++
2. solo existía la sobrecarga no constante
1. descripción añadida
2. añadida la sobrecarga constante
LWG 907 C++98 el comportamiento de leer el bit en pos era equivalente
al de test(pos) , pero test() puede lanzar excepciones
evita mencionar test()

Véase también

accede a un bit específico
(función miembro pública)