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) предоставлены для упрощения вызовов std::allocator. 3) Использует по умолчанию характеристику символов std::char_traits и аллокатор std::allocator. 4) Использует по умолчанию тип символа char, характеристику символов std::char_traits и аллокатор std::allocator. | (до C++11) |
Параметры
| zero | - | символ для представления false |
| one | - | символ для представления true |
Возвращаемое значение
to_string<CharT, Traits, std::allocator<CharT>>(zero, one).to_string<CharT, std::char_traits<CharT>, std::allocator<CharT>>(zero, one).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 | также добавлено |
См. также
| возвращает целочисленное представление данных типа unsigned long (публичный член-функция) |
|
|
(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