Вимірювання часу в C++11
39 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Яка бібліотека використовується для вимірювання часу виконання в C++11?

  • chrono (correct)
  • iostream
  • algorithm
  • stdio.h

Для чого використовується клас Timer?

  • Для управління пам'яттю
  • Для збереження даних у файлі
  • Для створення графіка
  • Для вимірювання часу виконання коду (correct)

Який тип використовується для позначення високої роздільної здатності годинника?

  • std::chrono::clock
  • std::chrono::high_resolution_clock (correct)
  • chrono::fast_clock
  • chrono::high_res_clock

Яка функція класу Timer використовується для обчислення пройденого часу?

<p>elapsed() (A)</p> Signup and view all the answers

Яка з наведених функцій не є частиною класу Timer?

<p>get_duration() (D)</p> Signup and view all the answers

Як можна скинути час виконання у класі Timer?

<p>reset() (D)</p> Signup and view all the answers

Яка змінна зберігає точку часу, коли об'єкт Timer був створений?

<p>m_beg (B)</p> Signup and view all the answers

Що буде повернено, якщо викликати elapsed() без скидання Timer?

<p>час виконання програми (C)</p> Signup and view all the answers

Яким чином можна ініціалізувати об'єкт класу Timer?

<p>Timer(); (B)</p> Signup and view all the answers

Який тип даних використовується для зберігання результату виконання функції elapsed()?

<p>double (A)</p> Signup and view all the answers

Яка бібліотека надає функціонал потоків вводу/виводу в C++?

<p>iostream (C)</p> Signup and view all the answers

Які об'єкти використовуються для простого вводу та виводу даних у C++?

<p>cin і cout (D)</p> Signup and view all the answers

Яка структура представлена в ієрархії класів бібліотеки iostream?

<p>Множинне спадкування (A)</p> Signup and view all the answers

Яка функція потоків у C++ найчастіше асоціюється зі словом 'stream'?

<p>Потоки даних (B)</p> Signup and view all the answers

Як можна охарактеризувати потік в C++?

<p>Послідовність символів (A)</p> Signup and view all the answers

Яка роль заголовкового файлу iostream у C++?

<p>Забезпечує доступ до класів вводу/виводу. (C)</p> Signup and view all the answers

Який із наведених класів є частиною бібліотеки iostream?

<p>iostream (A)</p> Signup and view all the answers

Чому бібліотеку iostream можна використовувати, незважаючи на множинне спадкування?

<p>Проблеми з спадкуванням нейтралізовані. (B)</p> Signup and view all the answers

Який тип даних, зазвичай, представляє потік у C++?

<p>Послідовність символів (D)</p> Signup and view all the answers

Який клас є батьківським класом для класу ios?

<p>class ios_base (C)</p> Signup and view all the answers

Для чого використовується клас istream в C++?

<p>Для роботи з вхідними потоками (D)</p> Signup and view all the answers

Який оператор використовується для вилучення значень з потоку?

<blockquote> <blockquote> <p>(B)</p> </blockquote> </blockquote> Signup and view all the answers

Яка роль класу ostream в C++?

<p>Для роботи з вихідними потоками (C)</p> Signup and view all the answers

Що відбувається, коли користувач натискає клавішу на клавіатурі?

<p>Код клавіші надсилається до вхідного потоку (C)</p> Signup and view all the answers

Яке призначення оператора вставки << в C++?

<p>Запис значень у вихідний потік (B)</p> Signup and view all the answers

Яка з наступних функцій не є частиною стандартного вводу/виводу в C++?

<p>read (B)</p> Signup and view all the answers

Який клас зазвичай використовується програмістами для взаємодії з потоками вводу/виводу?

<p>ios (D)</p> Signup and view all the answers

Яка операція в C++ стосується читання даних з потоку?

<p>Вилучення (C)</p> Signup and view all the answers

Що є загальним для всіх потоків вводу/виводу в C++?

<p>Оператори введення-виведення (C)</p> Signup and view all the answers

Яка основна роль вхідного потоку?

<p>Зберігання даних, отриманих від джерела (C)</p> Signup and view all the answers

Яка з наведених характеристик не є властивістю вихідного потоку?

<p>Завжди приймає дані без затримок (C)</p> Signup and view all the answers

Яке із зазначених пристроїв може бути джерелом як вводу, так і виводу?

<p>Файл (C)</p> Signup and view all the answers

Що може статися, якщо програма записує дані в вихідний потік і пристрій виводу не готовий?

<p>Дані зберігатимуться в вихідному потоці (A)</p> Signup and view all the answers

Які з наступних пристроїв є прикладами вихідного потоку?

<p>Принтер (B)</p> Signup and view all the answers

Який з описаних сценаріїв найкраще ілюструє роботу вхідного потоку?

<p>Користувач натискає клавішу на клавіатурі під час виконання програми (B)</p> Signup and view all the answers

Яка з цих визначень найкраще описує потік вводу?

<p>Механізм збору даних з джерел (D)</p> Signup and view all the answers

Що відбувається з даними у вихідному потоці, якщо пристрій виводу зайнятий?

<p>Дані виводяться в чергу до завершення обробки (C)</p> Signup and view all the answers

Який з цих варіантів не є джерелом вхідного потоку?

<p>Монітор (C)</p> Signup and view all the answers

Яка з наступних характеристик є спільною для потоків вводу та виводу?

<p>Обидва можуть обробляти необмежені обсяги даних (C)</p> Signup and view all the answers

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.

Quiz Team

Description

Цей тест призначений для перевірки знань про вимірювання часу виконання коду в C++11 за допомогою бібліотеки chrono. Ви дізнаєтеся, як створити клас Timer, що дозволяє ефективно відстежувати час виконання функцій. Пройдіть тест, щоб перевірити свої навички в цій темі.

More Like This

Use Quizgecko on...
Browser
Browser