Чтение онлайн

на главную - закладки

Жанры

Программирование. Принципы и практика использования C++ Исправленное издание
Шрифт:

int tm_min; // минута часа [0,59]

int tm_hour; // час дня [0,23]

int tm_mday; // день месяца [1,31]

int tm_mon; // месяц года [0,11]; 0 — январь (примечание: не [1:12])

int tm_year; // год с 1900- го года ; 0 — 1900-й год,

// 102 — 2002-й год

int tm_wday; // дни, начиная с воскресенья [0,6]; 0 — воскресенье

int tm_yday; // дней
после 1 января [0,365]; 0 — 1 января

int tm_isdst; // часы летнего времени

};

Функции для работы с датами и временем

clock_t clock; // количество тактов таймера после старта программы

time_t time(time_t* pt); // текущее календарное

// время

double difftime(time_t t2, time_t t1); // t2–t1 в секундах

tm* localtime(const time_t* pt); // локальное время для *pt

tm* gmtime(const time_t* pt); // время по Гринвичу (GMT) tm для

// *pt или 0

time_t mktime(tm* ptm); // time_t для *ptm или time_t(–1)

char* asctime(const tm* ptm); // представление *ptm в виде

// C-строки

char* ctime(const time_t* t) { return asctime(localtime(t)); }

Пример результата вызова функции

asctime
:
"Sun Sep 16 01:03:52 1973\n"
.

Рассмотрим пример использования функции

clock
для измерения времени работы функции (
do_something
).

int main(int argc, char* argv[])

{

int n = atoi(argv[1]);

clock_t t1 = clock; // начало отсчета

if (t1 == clock_t(–1)) { // clock_t(–1) означает "clock

// не работает "

cerr << "Извините, таймер не работает \n";

exit(1);

}

for (int i = 0; i<n; i++) do_something; // временной цикл

clock_t t2 = clock; // конец отсчета

if (t2 == clock_t(–1)) {

cerr << "Извините, таймер переполнен \n";

exit(2);

}

cout << "do_something " << n << " работала "

<< double(t2–t1)/CLOCKS_PER_SEC << "
секунд "

<< " (точность измерения: " << CLOCKS_PER_SEC

<< " секунд )\n";

}

Явное преобразование

double(t2–t1)
перед делением является необходимым, потому что число
clock_t
может быть целым. Для значений
t1
и
t2
, возвращаемых функцией
clock
, величина
double(t2–t1)/CLOCKS_PER_SEC
является наилучшим системным приближением времени в секундах, прошедшего между двумя вызовами.

Если функция

clock
не поддерживается процессором или временной интервал слишком длинный, то функция
clock
возвращает значение
clock_t(–1)
.

Б.10.6. Другие функции

В заголовке

<cstdlib>
определены следующие функции.

Функция для сравнения (

cmp
), используемая функциями
qsort
и
bsearch
, должна иметь следующий тип:

int (*cmp)(const void* p,const void* q);

Иначе говоря, функции сортировки не известен тип упорядочиваемых элементов: она просто интерпретирует массив как последовательность байтов и возвращает целое число, удовлетворяющее следующим условиям:

• оно является отрицательным, если

*p
меньше, чем
*q
;

• оно равно нулю, если

*p
равно
*q
;

оно больше нуля, если

*p
больше, чем
*q
.

Подчеркнем, что функции

exit
и
abort
не вызывают деструкторы. Если хотите вызывать деструкторы для статических объектов и объектов, созданных автоматически (см. раздел A.4.2), генерируйте исключение.

Более полную информацию о функциях из стандартной библиотеки можно найти в книге K&R или другом авторитетном справочнике по языку С++.

Б.11. Другие библиотеки

Исследуя возможности стандартной библиотеки, вы, конечно, не найдете чего-то, что могло бы быть полезным для вас. По сравнению с задачами, стоящими перед программистами, и огромным количеством доступных библиотек, стандартная библиотека языка C++ является довольно скромной. Существует много библиотек, предназначенных для решения следующих задач.

• Графические пользовательские интерфейсы.

• Сложные математические вычисления.

• Доступ к базам данных.

• Работа в сети.

Поделиться:
Популярные книги

Адвокат Империи 3

Карелин Сергей Витальевич
3. Адвокат империи
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Адвокат Империи 3

Кротовский, может, хватит?

Парсиев Дмитрий
3. РОС: Изнанка Империи
Фантастика:
попаданцы
альтернативная история
аниме
7.50
рейтинг книги
Кротовский, может, хватит?

Дурная жена неверного дракона

Ганова Алиса
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Дурная жена неверного дракона

Вонгозеро

Вагнер Яна
1. Вонгозеро
Детективы:
триллеры
9.19
рейтинг книги
Вонгозеро

Ведьма Вильхельма

Шёпот Светлана
Любовные романы:
любовно-фантастические романы
8.67
рейтинг книги
Ведьма Вильхельма

Папина дочка

Рам Янка
4. Самбисты
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Папина дочка

Законы Рода. Том 6

Flow Ascold
6. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 6

Как я строил магическую империю 7

Зубов Константин
7. Как я строил магическую империю
Фантастика:
попаданцы
постапокалипсис
аниме
фантастика: прочее
5.00
рейтинг книги
Как я строил магическую империю 7

Лучший из худший 3

Дашко Дмитрий
3. Лучший из худших
Фантастика:
городское фэнтези
попаданцы
аниме
6.00
рейтинг книги
Лучший из худший 3

Штурмовик из будущего 3

Политов Дмитрий Валерьевич
3. Небо в огне
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Штурмовик из будущего 3

Последний попаданец 2

Зубов Константин
2. Последний попаданец
Фантастика:
юмористическая фантастика
попаданцы
рпг
7.50
рейтинг книги
Последний попаданец 2

Идеальный мир для Лекаря 14

Сапфир Олег
14. Лекарь
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 14

Безумный Макс. Поручик Империи

Ланцов Михаил Алексеевич
1. Безумный Макс
Фантастика:
героическая фантастика
альтернативная история
7.64
рейтинг книги
Безумный Макс. Поручик Империи

Вдова на выданье

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Вдова на выданье