Spec-Zone.ru › C++

std::bitset<N>::to_string

(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;
(до 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;
(с C++11)
(constexpr с C++23)
template< class CharT, class Traits >
std::basic_string<CharT, Traits>
    to_string( CharT zero = CharT('0'), CharT one = CharT('1') ) const;
(2) (до C++11)
template< class CharT >
std::basic_string<CharT>
    to_string( CharT zero = CharT('0'), CharT one = CharT('1') ) const;
(3) (до C++11)
std::string to_string( char zero = '0', char one = '1' ) const;
(4) (до C++11)

Преобразует содержимое бита в строку. Использует zero для представления бит с значением false и one для представления бит с значением true.

Полученная строка содержит N символов, где первый символ соответствует последнему (N-1-му) биту, а последний символ соответствует первому биту.

Все аргументы шаблона типа необходимо указывать, так как шаблоны функций не могут иметь аргументы по умолчанию. Перегрузки (2-4) предоставлены для упрощения вызовов to_string:

2) Использует по умолчанию аллокатор std::allocator. 3) Использует по умолчанию характеристику символов std::char_traits и аллокатор std::allocator. 4) Использует по умолчанию тип символа char, характеристику символов std::char_traits и аллокатор std::allocator.
(до C++11)

Параметры

zero - символ для представления false
one - символ для представления true

Возвращаемое значение

1) Преобразованная строка.
2) to_string<CharT, Traits, std::allocator<CharT>>(zero, one).
3) to_string<CharT, std::char_traits<CharT>, std::allocator<CharT>>(zero, one).
4) to_string<char, std::char_traits<char>, std::allocator<char>>(zero, one).

Исключения

Может выбросить std::bad_alloc из конструктора std::string.

Примечания

Начиная с C++11, шаблоны функций могут иметь аргументы по умолчанию. LWG issue 1113 удалил вспомогательные перегрузки (2-4) и добавил соответствующие аргументы по умолчанию в (1).

Пример

#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';
}

Вывод:

00101010
**1*1*1*
OOXOXOXO

Отчеты об ошибках

Следующие отчеты об ошибках, изменяющие поведение, были применены ретроактивно к ранее опубликованным стандартам C++.

DR Применён к Поведение, как опубликовано Корректное поведение
LWG 396 C++98 Биты zero и one преобразовывались в символы ​0​
и 1 (которые не соответствуют '0' и '1')
добавление параметров для предоставления значений для этих символов
LWG 434 C++98 необходимо было предоставлять все аргументы шаблона добавление перегрузок (2-4)
LWG 853 C++98 перегрузки (2-4) не имели аргументов по умолчанию, добавленных LWG issue 396 также добавлено

См. также

to_ulong
возвращает целочисленное представление данных типа unsigned long
(публичный член-функция)
to_ullong
(C++11)
возвращает целочисленное представление данных типа unsigned long long
(публичный член-функция)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/utility/bitset/to_string

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API