1. Масиви
1.1. впорядкований набір фіксованої кількості однотипних елементів, що зберігаються в послідовно розташованих комірках оперативної пам'яті, мають порядковий номер і спільне ім'я, що надає користувач.
1.1.1. Одновимірні масиви
1.1.2. Багатовимірні масиви
1.1.3. Динамічні масиви
2. ТИПИ ДАНИХ
2.1. Основні типи даних
2.1.1. int (цілий); char (символьний); bool (логічний); float (дійсний); double (дійсний з подвійною точністю); void (порожній, не має значення).
2.2. Специфікатори типу
2.2.1. short (короткий); long (довгий); signed (знаковий); unsigned (беззнаковий).
3. Вектор
3.1. Типова реалізація вектора — це вказівник на динамічний масив. Розмір вектора — це кількість елементів, а об'єм — кількість використаної ним пам'яті.
3.1.1. #include <vector> int main() { std::vector<int> v(1); // Створюємо вектор, що складається з одного елемента типу int, значення якого рівне 0 int& first = *v.begin(); // Створюємо посилання на перший елемент v.insert(v.end(), v.capacity(), 0); // Додаємо нові елементи int i = first; // Невизначена поведінка. Посилання може бути недійсним. }
3.2. це абстрактна модель, яка імітує динамічний масив.
3.2.1. Клас vector — це контейнер. Згідно з стандартом С++, будь-який контейнер повинен мати такі методи begin(), end(), size(), max_size(), empty() і swap()
3.2.2. В додаток до функцій прямого доступу до елементів, описаних вище, елементи вектора можна отримати за допомогою ітераторів.
3.2.3. Ітератори зазвичай використовуються парами, один з яких використовується для вказівки поточної ітерації, а другий слугує для позначення кінця контейнера. Ітератори створюються за допомогою таких стандартних методів, як begin() і end(). Функція begin() повертає вказівник на перший елемент, а end() — на уявний неіснуючий елемент, що є наступним після останнього.
3.2.3.1. vector<int> the_vector; vector<int>::iterator the_iterator; for (int i=0; i < 10; i++) { the_vector.push_back(i); } int total = 0; the_iterator = the_vector.begin(); while (the_iterator != the_vector.end()) { total += *the_iterator; /* Зверніть увагу, що доступ до елемента можна отримати за допомогою розіменування ітератора */ ++the_iterator; } cout << "Сума=" << total << endl;
4. СОРТУВАННЯ
4.1. базові
4.1.1. обмінне
4.1.2. вибором
4.1.3. вставками
4.2. Швидкі
4.2.1. швидке
4.2.2. пірамідальне
4.2.3. злиття
5. Структура
5.1. об'єднання різних змінних (навіть з різними типами даних), якому можна присвоїти ім'я.
5.2. struct building { char *owner char *city; int amountRooms; float price; }apartment1; //объявление объекта типа building
6. Функції
6.1. Функції - це блоки коду, що виконують певні операції
6.1.1. При оголошенні функції необхідно вказати: 1. Повертаний тип, що є типом значення, повертаного функцією. Якщо повертати значення не вимагається, вкажіть void. Наприклад, в C 11 можна використати повертаний тип auto, що віддає компілятору команду визначати тип відповідно до оператора return. Тип decltype(auto) також використовується в C 14. Додаткові відомості см в підрозділі "Виведення повертаних типів" нижче. 2. Ім'я функції, яке повинне розпочинатися з букви або символу підкреслення і не повинно містити пропусків. У стандартній бібліотеці зі знаку підкреслення зазвичай розпочинаються імена закритих функцій-членів або функцій, що не є членами і не призначених для використання у вашому коді. 3. Список параметрів, поміщений в дужки. У цьому списку через кому вказується потрібне(можливо, нульове) число параметрів, задаючих тип і, при необхідності, локальне ім'я, по якому до значень можна отримати доступ в тілі
6.2. тип ім’я_функції(список_параметрів або void) { тіло_функції [return] (вираз); }
7. змінні
7.1. глобальні
7.2. локальні
8. String
8.1. В мові програмування C++, std::string є стандартним класом, який представляє текстовий рядок. Цей клас вирішує багато проблем, що виникають при роботі з рядками Cі-стилю
8.1.1. #include <iostream> #include <string> using namespace std; int main() { string foo = "fighters"; string bar = "stool"; // "!=" порівнює вміст рядків на рівність, навіть якщо це різні об'єкти. if (foo != bar) { cout << "The strings are different." << endl; } // Друкує рядок "stool fighters" створюючи тимчасовий рядок, який буде знищено автоматично. cout << bar + " " + foo << endl; return 0; }
8.1.2. методи size_t size () const noexcept Повертає поточну кількість символів в рядку [1]. size_t length () const noexcept Повертає поточну кількість символів в рядку [1]. size_t max_size () const noexcept Повертає максимально можливу довжину рядка [1]. void resize (size_t n); Змінює розмір довжини рядка [1]. void resize (size_t n, char c); Змінює розмір довжини рядка і заповнює рядок зазначеним символом [1]. size_t capacity () const noexcept Повертає довжину рядка виділеної пам'яті [1]. void reserve (size_t n = 0) Резервує пам'ять для n символів [1]. void clear () noexcept Очищає рядок [1]. bool empty () const noexcept Повертає логічний прапор про те, порожня рядок [1]. shrink_to_fit ()
9. ЦИКЛИ
9.1. Безумовні цикли
9.1.1. while true do for(;;) while (1)
9.1.2. Цинкл вихід в якому не передбачений логікою програми. Для забезпечення нескінченного повторення перевірка умови в такому циклі відсутня.
9.2. Цикл з передумовою
9.2.1. while (<умова>) { <Тіло циклу> }
9.2.2. Цикл з передумовою — цикл, що виконується доки істинна деяка умова, вказана перед його початком. Ця умова перевіряється до початку виконання тіла циклу, тому тіло може бути не виконане жодного разу (якщо умова з початку хибна). У більшості процедурних мов програмування здійснюється за допомогою інструкції while
9.3. Цикл з післяумовою
9.3.1. Цикл з післяумовою — цикл, в якому умова перевіряється після виконання тіла циклу.
9.3.2. do { <тіло циклу> } while(<умова>)
9.4. Цикл з лічильником
9.4.1. Цикл з лічильником — цикл, в якому деяка змінна змінює своє значення від заданого початкового значення до кінцевого значення з деяким кроком, і для кожного значення цієї змінної тіло циклу виконується один раз
9.4.2. i = 0; while (i <10) { ... тіло циклу ++ i; }