std::bitset<N>::to_string
(1) | ||
template< class CharT, |
(до C++11) | |
template< class CharT = char, |
(начиная с C++11) (constexpr начиная с C++23) |
|
template< class CharT, class Traits > std::basic_string<CharT, Traits> |
(2) | (до C++11) |
template< class CharT > std::basic_string<CharT> |
(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) предназначены для упрощения вызовов 2) Использует аллокатор std::allocator по умолчанию.
3) Использует свойства символа по умолчанию std::char_traits и аллокатор std::allocator по умолчанию .
4) Использует тип символа по умолчанию char, свойство символа по умолчанию std::char_traits и аллокатор по умолчанию std::allocator.
|
(до C++11) |
Содержание |
[править] Параметры
zero | — | символ, используемый для представления false |
one | — | символ, используемый для представления true |
[править] Возвращаемое значение
[править] Исключения
Может вызвать std::bad_alloc из конструктора std::string.
[править] Примечание
Начиная с C++11, шаблоны функций могут иметь аргументы шаблона по умолчанию. LWG проблема 1113 удалила вспомогательные перегрузки (2-4) и добавила соответствующие аргументы шаблона по умолчанию в (1).
[править] Пример
#include <iostream> #include <bitset> 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++:
Номер | Применён | Поведение в стандарте | Корректное поведение |
---|---|---|---|
LWG 396 | C++98 | нулевой и единичный биты были преобразованы в символы 0 и 1 (которые не соответствуют '0' и '1') |
добавлены параметры для предоставления значений для этих символов |
LWG 434 | C++98 | все аргументы шаблона должны быть предоставлены | добавлены перегрузки (2-4) |
LWG 853 | C++98 | перегрузки (2-4) не имеют аргументов по умолчанию, добавленные LWG проблема 396 |
также добавлено |
[править] Смотрите также
возвращает целочисленное представление данных в типе unsigned long (public функция-элемент) | |
(C++11) |
возвращает целочисленное представление данных в типе unsigned long long (public функция-элемент) |