Spec-Zone.ru › C++

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) предоставлены для упрощения вызовов 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::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
также добавлены

См. также

to_ulong
возвращает целочисленное представление данных типа unsignedlong
(открытая функция-член)
to_ullong
(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

Spec-Zone.ru

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