
- •Вирази і оператори.
- •Логічні оператори.
- •Оператор розгалуження.
- •Оператор вибору.
- •Арифметичні операції. Пріоритет виконання.
- •Вказівники константи.
- •Вказівники змінні.
- •Функції.
- •Функція для роботи з файлами.
- •Передача аргументів у функцію.
- •Значення, яке повертає функція.
- •Рекурсивні функції.
- •Блоки і область видимості змінних.
- •Оператори повторення.
- •Структури. Вкладені структури.
- •Створення класів.
- •Управління виконанням програм.
- •Одновимірні масиви даних.
- •Двовимірні масиви даних.
- •Створення масивів з використанням вказівників.
- •Алгоритми сортування масивів.
- •Рядки і операції над ними.
- •Функції введення-виведення.
- •Конструктори, деструктори.
- •Класи. Успадкування.
- •Класи. Поліморфізм.
- •Класи. Інкапсуляція.
- •Вказівник this.
- •Перевантаження операцій та операторів.
- •Поліморфізм і віртуальні функції.
- •Стандартний клас string.
- •Стандартний клас queue.
- •Стандартний клас vector.
- •Стандартний клас list.
- •Стандартний клас stack.
- •Створення і використання шаблонів функцій та класів.
- •Стандартна бібліотека шаблонів (stl)
- •Доступність методів класу.
- •Конструктор та деструктор класів.
- •Наслідування класів.
- •Використання просторів імен.
- •Шаблони функцій.
- •Шаблони класів.
- •Алгоритми стандартної бібліотеки stl.
- •Динамічні структури типу стек.
- •Динамічні структури типу однонаправлений список.
- •Динамічні структури типу двонаправлений список.
- •Сортування масивів із використанням вказівників.
Динамічні структури типу двонаправлений список.
Обробка однанаправленого списку не завжди зручна, оскільки відсутня можливість просування в протилежну сторону. Таку можливість забезпечує двонаправлений список, кожен елемент якого містить два покажчики: на наступний і попередній елементи списку. Структура лінійного двонаправленого списку приведена на рис. 1.2, де поле NEXT - покажчик на наступний елемент, поле PREV - покажчик на попередній елемент. У крайніх елементах відповідні покажчики повинні містити null, як і показано на рис. 1.2.
Ріс.1.2. Структура двонаправленого списку
Для зручності обробки списку додають ще один особливий елемент - покажчик кінця списку. Наявність двох покажчиків в кожному елементі ускладнює список і приводить до додаткових витрат пам'яті, але в той же час забезпечує ефективніше виконання деяких операцій над списком.
Сортування масивів із використанням вказівників.
За допомогою вказівників можна також передавати масиви. В цьому випадку розробники програм часто використовують функцію sizeof. З цією метою добре б знати арифметичні операції, які прийняті в С і здійснюються в циклічних структурах. Вказівник може бути інкрементований (++), декрементований (--), до вказівника може бути прибавлене ціле число (+ або +=) і з вказівника може бути відняте ціле число (- або -=). Для пояснення припустимо, що ми маємо справу із вказівником типу int, під який резервується 4 байти. Нехай вказівник yPtr приймає значення адреси пам’яті 3000. Тоді оператор yPtr +=2 дасть результат: 3000+2*4=3008. Дії ++yPtr або yPtr++ та -- yPtr або yPtr -- при застосуванні в масивах будуть давати можливість вказівнику отримувати значення пам’яті на наступний і попередній елементи масиву. Якщо ми маємо масив b[10] теж типу int, наприклад, то вказівник bPtr[1] буде вказувати на 1-ий елемент масиву b. Аналогічно можна виявити дії інших згаданих арифметичних операцій. Масиви також можуть складатися із вказівників, які часто можуть утворювати масив символьних лінійок.