Podcast
Questions and Answers
Яка бібліотека використовується для вимірювання часу виконання в C++11?
Яка бібліотека використовується для вимірювання часу виконання в C++11?
- chrono (correct)
- iostream
- algorithm
- stdio.h
Для чого використовується клас Timer?
Для чого використовується клас Timer?
- Для управління пам'яттю
- Для збереження даних у файлі
- Для створення графіка
- Для вимірювання часу виконання коду (correct)
Який тип використовується для позначення високої роздільної здатності годинника?
Який тип використовується для позначення високої роздільної здатності годинника?
- std::chrono::clock
- std::chrono::high_resolution_clock (correct)
- chrono::fast_clock
- chrono::high_res_clock
Яка функція класу Timer використовується для обчислення пройденого часу?
Яка функція класу Timer використовується для обчислення пройденого часу?
Яка з наведених функцій не є частиною класу Timer?
Яка з наведених функцій не є частиною класу Timer?
Як можна скинути час виконання у класі Timer?
Як можна скинути час виконання у класі Timer?
Яка змінна зберігає точку часу, коли об'єкт Timer був створений?
Яка змінна зберігає точку часу, коли об'єкт Timer був створений?
Що буде повернено, якщо викликати elapsed() без скидання Timer?
Що буде повернено, якщо викликати elapsed() без скидання Timer?
Яким чином можна ініціалізувати об'єкт класу Timer?
Яким чином можна ініціалізувати об'єкт класу Timer?
Який тип даних використовується для зберігання результату виконання функції elapsed()?
Який тип даних використовується для зберігання результату виконання функції elapsed()?
Яка бібліотека надає функціонал потоків вводу/виводу в C++?
Яка бібліотека надає функціонал потоків вводу/виводу в C++?
Які об'єкти використовуються для простого вводу та виводу даних у C++?
Які об'єкти використовуються для простого вводу та виводу даних у C++?
Яка структура представлена в ієрархії класів бібліотеки iostream?
Яка структура представлена в ієрархії класів бібліотеки iostream?
Яка функція потоків у C++ найчастіше асоціюється зі словом 'stream'?
Яка функція потоків у C++ найчастіше асоціюється зі словом 'stream'?
Як можна охарактеризувати потік в C++?
Як можна охарактеризувати потік в C++?
Яка роль заголовкового файлу iostream у C++?
Яка роль заголовкового файлу iostream у C++?
Який із наведених класів є частиною бібліотеки iostream?
Який із наведених класів є частиною бібліотеки iostream?
Чому бібліотеку iostream можна використовувати, незважаючи на множинне спадкування?
Чому бібліотеку iostream можна використовувати, незважаючи на множинне спадкування?
Який тип даних, зазвичай, представляє потік у C++?
Який тип даних, зазвичай, представляє потік у C++?
Який клас є батьківським класом для класу ios?
Який клас є батьківським класом для класу ios?
Для чого використовується клас istream в C++?
Для чого використовується клас istream в C++?
Який оператор використовується для вилучення значень з потоку?
Який оператор використовується для вилучення значень з потоку?
Яка роль класу ostream в C++?
Яка роль класу ostream в C++?
Що відбувається, коли користувач натискає клавішу на клавіатурі?
Що відбувається, коли користувач натискає клавішу на клавіатурі?
Яке призначення оператора вставки << в C++?
Яке призначення оператора вставки << в C++?
Яка з наступних функцій не є частиною стандартного вводу/виводу в C++?
Яка з наступних функцій не є частиною стандартного вводу/виводу в C++?
Який клас зазвичай використовується програмістами для взаємодії з потоками вводу/виводу?
Який клас зазвичай використовується програмістами для взаємодії з потоками вводу/виводу?
Яка операція в C++ стосується читання даних з потоку?
Яка операція в C++ стосується читання даних з потоку?
Що є загальним для всіх потоків вводу/виводу в C++?
Що є загальним для всіх потоків вводу/виводу в C++?
Яка основна роль вхідного потоку?
Яка основна роль вхідного потоку?
Яка з наведених характеристик не є властивістю вихідного потоку?
Яка з наведених характеристик не є властивістю вихідного потоку?
Яке із зазначених пристроїв може бути джерелом як вводу, так і виводу?
Яке із зазначених пристроїв може бути джерелом як вводу, так і виводу?
Що може статися, якщо програма записує дані в вихідний потік і пристрій виводу не готовий?
Що може статися, якщо програма записує дані в вихідний потік і пристрій виводу не готовий?
Які з наступних пристроїв є прикладами вихідного потоку?
Які з наступних пристроїв є прикладами вихідного потоку?
Який з описаних сценаріїв найкраще ілюструє роботу вхідного потоку?
Який з описаних сценаріїв найкраще ілюструє роботу вхідного потоку?
Яка з цих визначень найкраще описує потік вводу?
Яка з цих визначень найкраще описує потік вводу?
Що відбувається з даними у вихідному потоці, якщо пристрій виводу зайнятий?
Що відбувається з даними у вихідному потоці, якщо пристрій виводу зайнятий?
Який з цих варіантів не є джерелом вхідного потоку?
Який з цих варіантів не є джерелом вхідного потоку?
Яка з наступних характеристик є спільною для потоків вводу та виводу?
Яка з наступних характеристик є спільною для потоків вводу та виводу?
Study Notes
### Вимірювання часу виконання коду
- Для визначення ефективності двох функцій з однаковим кінцевим результатом, можна засікти час їхнього виконання.
- В C++11 для цього використовується бібліотека
chrono
. - Для зручності використання функцій з
std::chrono
можна створити класTimer
. - Клас
Timer
використовує псевдоніми типів для зручного доступу до вкладених типів:clock_t
для високоточного годинникаstd::chrono::high_resolution_clock
,second_t
для тривалостіstd::chrono::duration
. - Конструктор класу
Timer
ініціалізує приватний членm_beg
поточним часом за допомогоюclock_t::now()
. - Метод
reset()
скидає значенняm_beg
до поточного часу. - Метод
elapsed()
повертає тривалість часу в секундах, яка минула з моменту ініціалізації або останнього скиданняm_beg
, використовуючиstd::chrono::duration_cast
. - Щоб використовувати клас
Timer
необхідно створити об'єкт цього класу.
Вступ до потоків вводу-виводу
- Функціонал вводу-виводу в C++ не вбудовано в мову, а надається Стандартною бібліотекою C++, зокрема в просторі імен
std
. - Бібліотека iostream надає всі необхідні класи та функції для роботи з вводом-виводом даних.
Ієрархія класів бібліотеки iostream
- Бібліотека iostream містить ієрархію класів, що відповідають за введення та вивід.
- Серед цих класів – клас
iostream
. - Ієрархія класів iostream розглядає множинне спадкування, але добре розроблена та протестована, щоб уникнути проблем, пов'язаних з ним.
Потоки в C++
- Основний механізм вводу-виводу в C++ – потоки.
- Потік – послідовність символів, до якої можна отримати доступ.
- Потоки можуть бути вводильними або виводильними.
Вводильний потік
- Зберігає дані, отримані від джерела даних (клавіатура, файл, мережа).
- Приклад: якщо користувач натискає клавішу, поки програма не очікує вводу, символ потрапляє у вводильний потік.
Виводильний потік
- Зберігає дані, що відправляються до споживача (монітор, файл, принтер).
- Приклад: якщо принтер ще не готовий до друку, дані тимчасово зберігаються у виводильному потоці.
Клас ios
- є дочірнім класом
ios_base
. - Визначає загальні характеристики потоків вводу-виводу.
Клас istream
- Працює з вводильними потоками.
- Оператор вилучення
>>
витягує значення з потоку.
Клас ostream
- Працює з виводильними потоками.
- Оператор вставки
<<
вставляє значення в потік.
Деякі приклади роботи з потоками
cin
– це стандартний об’єкт класуistream
, пов'язаний з вводильним потоком від клавіатури.cout
– це стандартний об’єкт класуostream
, пов'язаний з виводильним потоком на екран.- Приклад:
int nAge; cin >> nAge;
(зчитується ціле число з вводу і зберігається в зміннійnAge
).
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Цей тест призначений для перевірки знань про вимірювання часу виконання коду в C++11 за допомогою бібліотеки chrono
. Ви дізнаєтеся, як створити клас Timer
, що дозволяє ефективно відстежувати час виконання функцій. Пройдіть тест, щоб перевірити свої навички в цій темі.