Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
new_mb.doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
892 Кб
Скачать
☆

5.2. Класс «complex»

Класс «complex» – класс комплексных чисел. Для его использования необходимо подключить файл «<complex>» .

Комплексное число состоит из действительной и мнимой частей: «real» и «imag». Обе части числа могут иметь любой из встроенных арифметических типов. Доступ к ним осуществляется через «real» и «imag» соответственно.

Над комплексными числами определены арифметические операции сложения, разности, умножения и деления, а также проверки на равенство и неравенство.

Комплексные числа могут вводиться и выводиться при помощи потоков. Вывод выглядит следующим образом: «(real, imag)». Ввод может осуществляться тремя способами: «real», «(real)», «(real,imag)». Допустимо также непосредственное присвоение комплексному числу значения одного из арифметических типов.

Над комплексными числами могут, помимо стандартных математических, выполняться операции в полярной системе координат: «abs()», «arg()», «polar()», «norm()».

Листинг 5.2. Комплексные числа.

#include <iostream>

#include <complex>

using namespace std;

int main(void)

{

complex<double> x;

x = 3;

cout << polar(abs(x), arg(x)) << endl;

complex<int> y;

cin >> y;

cout << pow(abs(x), 2) << " = " << norm(x) << endl;

return 0;

}

5.3. Класс «string»

Данный класс предоставляет больше возможностей, по сравнению с С – строками, однако в некоторых случаях всеже приходится пользоваться последними, как например, при разборе параметров командной строки.

Стандартный строковый класс описан в файле «string». После его включения использование строк выглядят также, как использование встроенных типов.

Таблица 5.1. Операции со строкой.

Название

Описание

[]

Доступа к символу по индексу без проверки на существование

+

Конкатенация

==

Сравнения

at

Доступ к символу по индексу с проверкой на существование

compare

Сравнение строк или их чистей

copy

Копирование части строки

data

Приведение к С – строке

empty

Проверка на пустоту

erase

Удаление части строки

find

Поиск вхождения

find_first_not_of

Первое вхождение символа, отсутствующего в указанной строке

find_first_of

Первое вхождение символа, присутствующего в указанной строке

find_last_not_of

Последнее вхождение символа, отсутствующего в указанной строке

find_last_of

Последнее вхождение символа, присутствующего в указанной строке

getline(istr, str, ch)

Считывание строки с пробельными символами и символами конца строки внутри из потока istr в строку str до символа – ограничителя ch

insert

Вставка части строки

append

Добавление символов в конец строки

length

Длинна строки

replace

Замена части строки

size

Определение размера строки

substr

Получение части строки

Следующий листинг демонстрирует некоторые возможности стандартного класса «string».

Листинг 5.3. Класс string.

#include <iostream>

#include <string>

using namespace std;

int main (void)

{

//создание строки;

string stext1;

//ввод значения созданной строки;

getline( cin, stext1, '.' );

//создание строки;

string stext2;

//ввод значения созданной строки;

cin >> stext2;

//замена первого вхождения введенного слова многоточием;

if (stext1.find(stext2))

stext1.replace(stext1.find(stext2), stext2.size(), "...");

//затирание второго вхождения;

if (stext1.find(stext2))

stext1.erase(stext1.find(stext2), stext2.length());

//преобразование к С – строке;

char *cstr = const_cast<char*>(stext1.data());

cout << cstr << endl;

return 0;

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]