|
Программирование >> Операторы преобразования типа
Конструктор для интервала символов template<class InputIterator> basic string(Inputlterator beg. Inputlterator end. const Allocators a = AllocatorO): Эти конструкторы ведут себя так, как описано на с. 490, но дополнительно позволяют передать пользовательский объект распределителя памяти. Если строка инициализируется другой строкой, то вместе с содержимым копируется и распределитель памяти*. За дополнительной информацией о распределителях памяти обращайтесь к главе! 5. В стандарте сказано, что при копировании строки используется распределитель памяти по умолчанию. Такое решение выглядит нелогично, поэтому в настоящее время рассматривается предложение об изменении этой формулировки. Числовые типы в этой главе описаны компоненты стандартной библиотеки С++, предназначенные для работы с числовыми данными. В частности, здесь будет представлен класс комплексных чисел, классы массивов значений и глобальные численные функции, унаследованные из библиотеки С. Еще два численных компонента стандартной библиотеки С++ описаны в других главах: О несколько численных алгоритмов, поддерживаемых библиотекой STL, представлены на с. 414; О для всех базовых типов данных некоторые аспекты представления зависят от реализации и описываются типом numeric limits, который рассматривается иа с. 72. Комплексные числа В стандартную библиотеку С++ входит шаблонный класс complex о, предназначенный для работы с комплексными числами. На всякий случай стоит напомнить, что комплексные числа состоят из двух частей: вещественной и мнимой. * Особое свойство мнимой части заключается в том, что ее квадрат является отрицательным числом. Иначе говоря, мнимая часть представляет собой произведение числа и квадратного корня из -1, обозначаемого символом /. Класс complex объявляется в заголовочном файле <сотр1ех>: #include <complex> Определение класса complex в файле <сотр1ех> выглядит так: namespace std { template <class Т> class complex; Параметр шаблона Т задает скалярный тип как вещественной, так и мнимой части комплексного числа. В стандартную библиотеку С++ включены также три специализированные версии класса complex для типов float, double и long double: namespace std { tempiate<> class coiTiplex<float>: templateo class coriplex<double>: templateo class complex<long double>: Определения этих типов позволяют выполнять некоторые виды оптимизации и безопасное преобразование от одного комплексного типа к другому. римеры использования класса complex Следующая программа демонстрирует возможности класса complex по созданию комплексных чисел, их выводу в разных представлениях и выполнению некоторых типовых операций с комплексными числами. num/complexLcpp #include <iostream> #include <complex> using namespace std: lnt mainO /* Комплексное число с вещественной и мнимой частями * - Вещественная часть: 4.0 * - Мнииая часть: 3.0 */ complex<double> с1(4.0,3.0): /* Создание комплексного числа в системе полярных координат * - Амплитуда: 5.0 * - Фазовый угол: 0.75 */ complex<float> с2(ро1аг(5.0.0.75)): Вывод комплексного чиспа с вещественной и мнимой частями cout cl: cl endl: cout c2: c2 endl: Вывод комплексного числа в полярных координатах cout cl: magnitude: abs(cl) (squared magnitude: norm(cl) ) phase angle: arg(cl) endl: cout c2: magnitude: abs(c2) (squared magnitude: norri(c2) ) phase angle: arg(c2) endl: Вывод сопряжений комплексных чисел cout cl conjugated: conj(cl) endl: cout c2 conjugated: conj(c2) endl:
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |