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) предназначены для упрощения вызовов 2) Использует аллокатор 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 проблема 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 функция-элемент) |