|
Программирование >> Операторы преобразования типа
b1tset<pdjwep> operators (const bitset<рйэмер>& bitsl, const bitset<размер>& bit52) Возвращает поразрядную конъюнкцию bitsi и bits2 - новое битовое поле, в котором установлены только биты, установленные в bitsi и bits2. bitset<pdJMep> operator! (const bitset<размер>& bitsl. const bitset<размер>& bits2) Возвращает поразрядную дизъюнкцию bitsl и bits2 - новое битовое поле, в котором установлены биты, установленные в bitsi или в bits2. bitset<pa3wep> operator (const bitset<pa3wep>& bitsl. const bitset<pd3wep>& bits2) Возвращает поразрядную исключающую дизъюнкцию bitsi и bits2 - новое битовое ноле, в котором установлены биты, установленные в bitsl, но не в bitsl, или наоборот. Операции преобразования типа unsigned ling bitset<pdjj4ep>: :tQ ulong () const О Возвращает целое число, двоичное представление которого определяется битовым полем. О Если целое число не может бьггь представлено типом unsigned long, генерируется исключение overflow error. string bitset<pa3MepM;:to string () const О Возвращает строку с двоичным представлением битового поля, записанным символами О и *1 (для сброшенных и установленньтх битов соответственно). О Символы строки следуют в порядке убывания индекса битов, О Функция оформлена как шаблон, параметризуемый только по типу возвращаемого значения. Согласно правилам языка, необходимо использовать запись вида: bitset<50> b: b.template to 5tring<char.char trait5<char>.allocator<char> >() Операции ввода-вывода istrean operator (istream strm. bitset<p3Jwep>& bits) О Читает битовое ноле bits как последовательность символов О и 1 . О Чтение продолжается до тех нор, пока не будет выполнено одно из следующих условий: □ прочитано максимальное количество символов (размер), □ при чтении strm обнаружен конец файла; □ следующий символ отличен от *0 или D Возвращает st?7n. D Если количество прочитанных битов меньше количества битов в битовом поле, начальные биты заполняются нулями. 1> Если оператору не удается прочитать ни одного символа, он устанавливает для strm условие ios::failbit, в результате чего может быть сгенерировано соответствующее исключение (см. с. 576). )streamh operator {ostream strm. const bitset<pa3wep>& bits) D Выводит в поток данных битовое поле bits в виде символьного двоичного представления (то есть в виде последовательности символов О и 1>). Выходные символы создаются функцией to string() (см. ранее). D Возвращает strm. Пример использования приведен на с. 445 Строки Эта глава посвящеиа строковым типам стандартной библиотеки С++. В ней описан базовый шаблон basic string<> и его специализации string и wstring. При работе со строками у программистов часто возникают недоразумения. Как правило, это происходит из-за того, что термин строка может означать совершенно разные вещи - обычный символьный массив типа char* (с квали-фикатором const или без него), экземпляр класса string. Это также может быть обобщающим названием для объектов, которые содержат строковую информацию. В этой главе термин строка означает объект любого из строковых типов стандартной библиотеки С++ (string или wstring). Традиционные же строки типов char* и const char* будут называться С~строками. Учтите, что тин строковых литералов (например, hello ) был заменен на const char*. Тем не менее для обеспечения совместимости поддерживается неявное (хотя и нежелательное) преобразование к char*. Общие сведения Строковые классы стандартной библиотеки С++ позволяют работать со строками как с обычными типами, не создающими проблем для пользователей. Это означает, что строки можно копировать, присваивать и сравнивать как базовые типы, не беспокоясь о возможной нехватке памяти или размерах внутреннего блока, предназначенного для хранения символов. Вы просто используете нужный оператор, например, = (присваивание), == (проверка на равенство) или + (конкатенация). Короче говоря, строковые типы стандартной библиотеки С++ спроектированы так, чтобы они работали как базовые типы данных, не вызывающие никаких дополнительных проблем (во всяком случае, теоретически). Современная обработка данных во многом ориентирована на работу с текстом, поэтому данный аспект особенно важен для программистов с опытом работы на С, Fortran и других языках, в которых обработка строк реализована весьма неудобно. Два примера, представленных ниже, демонстрируют возможности и применение строковых классов. Они написаны только для учебных целей и не имеют практической ценности.
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |