Namespaces
Variants

std::bitset<N>:: to_string

From cppreference.net
Utilities library
(1)
template < class CharT, class Traits, class Allocator >

std:: basic_string < CharT, Traits, Allocator >
to_string ( CharT zero = CharT ( '0' ) ,

CharT one = CharT ( '1' ) ) const ;
(jusqu'à C++11)
template <

class CharT = char ,
class Traits = std:: char_traits < CharT > ,
class Allocator = std:: allocator < CharT >
>
std:: basic_string < CharT, Traits, Allocator >
to_string ( CharT zero = CharT ( '0' ) ,

CharT one = CharT ( '1' ) ) const ;
(depuis C++11)
(constexpr depuis C++23)
template < class CharT, class Traits >

std:: basic_string < CharT, Traits >
to_string ( CharT zero = CharT ( '0' ) ,

CharT one = CharT ( '1' ) ) const ;
(2) (jusqu'à C++11)
template < class CharT >

std:: basic_string < CharT > to_string ( CharT zero = CharT ( '0' ) ,

CharT one = CharT ( '1' ) ) const ;
(3) (jusqu'à C++11)
std:: string to_string ( char zero = '0' , char one = '1' ) const ;
(4) (jusqu'à C++11)

Convertit le contenu du bitset en une chaîne. Utilise zero pour représenter les bits ayant la valeur false et one pour représenter les bits ayant la valeur true .

La chaîne résultante contient N caractères, le premier caractère correspondant au dernier bit ( N - 1 ème ) et le dernier caractère correspondant au premier bit.

Tous les arguments de type template doivent être fournis car les modèles de fonction ne peuvent pas avoir d'arguments template par défaut. Les surcharges (2-4) sont fournies pour simplifier les appels de to_string :

2) Utilise l'allocateur par défaut std::allocator .
3) Utilise le trait de caractère par défaut std::char_traits et l'allocateur par défaut std::allocator .
4) Utilise le type de caractère par défaut char , le trait de caractère par défaut std::char_traits et l'allocateur par défaut std::allocator .
(jusqu'à C++11)

Table des matières

Paramètres

zéro - caractère à utiliser pour représenter false
un - caractère à utiliser pour représenter true

Valeur de retour

1) La chaîne convertie.
2) to_string < CharT, Traits, std:: allocator < CharT >> ( zéro, un ) .
3) to_string < CharT, std:: char_traits < CharT > , std:: allocator < CharT >> ( zéro, un ) .
4) to_string < char , std:: char_traits < char > , std:: allocator < char >> ( zéro, un ) .

Exceptions

Peut lever std::bad_alloc depuis le constructeur de std::basic_string .

Notes

Depuis C++11, les fonctions templates peuvent avoir des arguments template par défaut. LWG issue 1113 a supprimé les surcharges d'assistance ( 2-4 ) et a ajouté les arguments template par défaut correspondants dans ( 1 ) .

Exemple

#include <bitset>
#include <iostream>
int main()
{
    std::bitset<8> b{42};
    std::cout << b.to_string() << '\n'
              << b.to_string('*') << '\n'
              << b.to_string('O', 'X') << '\n';
}

Sortie :

00101010
**1*1*1*
OOXOXOXO

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR Appliqué à Comportement publié Comportement corrigé
LWG 396 C++98 les bits zéro et un étaient convertis en caractères 0
et 1 (qui ne correspondent pas à '0' et '1' )
ajout de paramètres pour fournir
les valeurs de ces caractères
LWG 434 C++98 tous les arguments template devaient être fournis ajout de surcharges ( 2-4 )
LWG 853 C++98 les surcharges ( 2-4 ) n'avaient pas les arguments
par défaut ajoutés par LWG issue 396
également ajoutés

Voir aussi

retourne une représentation unsigned long entière des données
(fonction membre publique)
(C++11)
retourne une représentation unsigned long long entière des données
(fonction membre publique)