std::bitset<N>::to_string
template< class CharT, class Traits, class Allocator >
std::basic_string<CharT, Traits, Allocator>
to_string( CharT zero = CharT('0'),
CharT one = CharT('1') ) const;
| (1) | (до 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::basic_string.
Примечания
Начиная с C++11 шаблоны функций могут иметь аргументы шаблона по умолчанию. Предложение LWG 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 396 | также добавлены |
См. также
| возвращает целочисленное представление данных типа unsignedlong (открытая функция-член) |
|
|
(C++11) | возвращает целочисленное представление данных типа unsignedlonglong (открытая функция-член) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/utility/bitset/to_string