Code Ukraine // Програмування
17.8K subscribers
969 photos
306 videos
3 files
1.38K links
Корисні шпаргалки, лекції та матеріали для програмістів.


@itua_chat - наш чат
@ad_duck - зв’язок / @ukr_duck
Download Telegram
Алгоритм shuffle

Переупорядковує елементи в заданому діапазоні [first, last) таким чином, щоб кожна можлива перестановка цих елементів мала рівну ймовірність появи.

#cpp

Code Ukraine
Алгоритм shuffle

Переупорядковує елементи в заданому діапазоні [first, last) таким чином, щоб кожна можлива перестановка цих елементів мала рівну ймовірність появи.

#cpp

Code Ukraine
🔧 Динамічні масиви в C++: коли розміру заздалегідь не знаєш

У класичних масивах розмір фіксований. А що робити, коли кількість елементів відома тільки під час виконання програми?
На допомогу приходять динамічні масиви! 🧠

📌 Що це таке?
Динамічний масив — це масив, який створюється в *кучі памʼяті (heap)* за допомогою new. Його розмір можна задати під час виконання програми.

📌 Ключові моменти:
🔹 new int[n] — виділяє місце в памʼяті для n елементів
🔹 arr[i] — доступ до елементів так само, як у звичайному масиві
🔹 delete[] arr — не забудь звільнити памʼять! 🧹

Чому важливо?
Гнучкість: можна створювати масиви будь-якого розміру під час виконання
Ефективність: памʼять використовується лише при потребі
Але є ризик утечок памʼяті, якщо забути delete[]

Хочеш ще зручніше? Використовуй std::vector — він сам керує памʼяттю і працює як динамічний масив, але без головного болю 💊

Написати пост і про вектори? Пиши в коментарі 💬

#cpp #динамічниймасив #куча #памʼять #розбіркоду

Code Ukraine
Please open Telegram to view this post
VIEW IN TELEGRAM
📦 C++ Вектори — динамічні масиви без головного болю

Якщо динамічні масиви в C++ тебе трохи лякають через new, delete та управління памʼяттю — знайомся з `std::vector`. Це — динамічний масив 2.0, де все робиться зручно, безпечніше і читабельніше 🔥

Що таке vector?
std::vector — це контейнер із стандартної бібліотеки, який автоматично змінює свій розмір у процесі виконання.

Корисні методи:
🔹 push_back(x) — додає елемент в кінець
🔹 pop_back() — видаляє останній елемент
🔹 size() — повертає кількість елементів
🔹 clear() — очищає вектор
🔹 empty() — перевіряє, чи порожній

🎯 Чому це круто?

Не потрібно вручну виділяти або звільняти памʼять
Можна легко змінювати розмір
Ітерація, сортування, копіювання — усе підтримується стандартними методами

📌 Коли використовувати `vector`?
— Якщо не знаєш наперед кількість елементів
— Якщо хочеш простий, зрозумілий та безпечний масив
— Якщо треба передавати масив як параметр функції (вектор це спрощує)

🧠 std::vector — один з найзручніших інструментів у C++. Якщо тільки починаєш — бери в руки вектор і не парся з new/delete.

👀 Якщо хочете глибше? Напишу пост окремо про вектори 2D, сортування і пошук!

#cpp #вектори #stdvector #програмування #розбіркоду

Code Ukraine
Please open Telegram to view this post
VIEW IN TELEGRAM
🧩 C++: 2D-вектори, сортування та пошук — усе, що треба знати

Хочеш зробити таблицю, матрицю або шахову дошку в C++? Тобі точно знадобиться двовимірний вектор. А ще — знати, як його сортувати і шукати в ньому значення 💡

📌 Перебір 2D-вектора:
for (int i = 0; i < matrix.size(); i++) {
for (int j = 0; j < matrix[i].size(); j++) {
cout << matrix[i][j] << " ";
}
cout << endl;
}


📌 Сортування рядків вектора:
#include <algorithm>
sort(matrix.begin(), matrix.end()); // сортує за першим елементом у кожному рядку


📌 Сортування кожного рядка:
for (auto &row : matrix) {
sort(row.begin(), row.end());
}


🔍 Пошук елемента в 2D-векторі:
int target = 7;
bool found = false;

for (const auto &row : matrix) {
if (find(row.begin(), row.end(), target) != row.end()) {
found = true;
break;
}
}
cout << (found ? "Знайдено!" : "Не знайдено!");


🎯 Коли використовувати 2D-вектори?

Для роботи з матрицями, таблицями, графами
Коли не знаєш розміри наперед — вектори гнучкі
Для задач на ЗНО, алгоритмах (DFS/BFS) і просто структури даних

2D-вектори — потужна і зручна альтернатива масивам. А з sort() і find() з STL — ще й мега-прості у використанні.

Хочете приклад про 2D-матрицю в грі або графі? Пишіть в коментарях! 🔍🧠

#cpp #вектор #двовимірнийвектор #сортування #пошук #структуриданих #матриці

Code Ukraine
Please open Telegram to view this post
VIEW IN TELEGRAM
🎮 2D-матриця в грі — приклад на C++

У багатьох іграх (шахи, змійка, лабіринти, платформери) — все починається з двовимірної матриці. Це сітка, де кожна клітинка — окремий об'єкт: гравець, ворог, стіна або пусте місце. Давай подивимось, як таку систему можна реалізувати на C++ 👇

Створимо просту карту:
🧱 # — стіна
⬜️ . — вільне місце
🧍 P — гравець

📌 Що можна зробити далі?
— Змінювати позицію гравця при натисканні клавіш
— Перевіряти, чи можна кудись рухатись
— Генерувати карту випадково
— Додавати ворогів, предмети і вихід з рівня

🔥 Ідеї для проєктів на 2D-матриці:
* Лабіринт із DFS/BFS
* Платформер
* ASCII-гра з перешкодами
* Змійка
* Покрокова тактична стратегія

Пишіть в коментарях — зробимо серію міні-проєктів на цій базі!

#cpp #2dгра #матриця #геймдев #ascii #платформер #snake #алгоритми #приклади

Code Ukraine
Please open Telegram to view this post
VIEW IN TELEGRAM