stacks queues stl
Дізнайтеся про впровадження стеків та черг у STL на прикладах.
Стеки та черги - це два контейнери в STL, які мають дуже основний характер. Це найпростіші контейнери, що мають широке застосування в програмуванні програмного забезпечення.
У цьому посібнику ми побачимо детальну реалізацію обох цих контейнерів у STL. Ми також розглянемо різні операції, що підтримуються стеком та чергою, із прикладами.
=> Зверніть увагу на прості навчальні серії C ++ тут.
Що ви дізнаєтесь:
Стеки
Контейнер стека в STL - це тип адаптерів для контейнерів. Він використовується для реплікації структури даних стеку в C ++. Контейнер стека - це набір елементів, в якому елементи вставляються з одного кінця, а також видаляються з того самого кінця.
Цей загальний пункт додавання та видалення відомий як “Верх стека”.
Живописне зображення стека показано нижче.
Як показано у наведеному вище поданні, стек - це контейнер, до якого елементи додаються та видаляються з того самого кінця, який називається Top of the stack.
Оскільки додавання та видалення відбуваються в одному кінці, ми можемо сказати, що контейнер стека - це тип роботи LIFO (останній вхід, перший вихід). Це означає, що елемент, доданий першим, буде останнім для видалення.
Для того, щоб реалізувати контейнер стека, нам потрібно включити заголовок у нашу програму.
#include
Загальний синтаксис оголошення для контейнера стека:
stack stackName;
Операції стека
Далі обговоримо різні операції, які стекують контейнер у STL.
- штовхати : операція натискання використовується для вставки елемента в стек. Ця операція завжди додає елементи у верхній частині стека.
Розглянемо порожній стек mystack цілого типу .
Далі додамо елемент 1 до стека.
Потім ми додаємо елемент 3 до стека.
Відповідно до подання, в результаті операції натискання елемент додається у верхній частині стека. Після кожної операції натискання розмір стека збільшується на 1.
- поп : операція pop використовується для видалення елемента зі стеку. Видалений елемент - це той, на який вказує верхня частина стека. В результаті операції вискочування розмір стека зменшується на 1.
Давайте подивимося, як виглядає поп-операція:
Розглянемо стек mystack, як описано вище, в якому ми вже просунули 2 елементи.
Тепер зателефонуємо функції pop (). Коли цей виклик виконується, елемент у верхній частині стека видаляється, а 'Top' вказує на наступний елемент, як показано нижче.
Якщо ми знову викликаємо pop (), то наступний елемент (в даному випадку 1) буде видалений, що призведе до порожнього стека.
найкращі книги для вивчення кібербезпеки
- зверху : Повертає найвищий елемент стека.
- порожній : Перевіряє, чи стек порожній чи ні.
- розмір: Повертає розмір стека, тобто кількість елементів у стеку.
Нижче наведено приклад реалізації стека для кращого розуміння операцій.
#include #include using namespace std; void printStack(stack stk) { while (!stk.empty()) { cout << ' ' << stk.top(); stk.pop(); } cout << '
'; } int main () { stack oddstk; oddstk.push(1); oddstk.push(3); oddstk.push(5); oddstk.push(7); oddstk.push(9); cout << 'The stack is : '; printStack(oddstk); cout << '
Size of stack: ' << oddstk.size(); cout << '
Top of stack: ' << oddstk.top(); cout << '
oddstk.pop() : '; oddstk.pop(); printStack(oddstk); cout<<'
Another pop(): '; oddstk.pop(); printStack(oddstk); return 0; }
Наведений приклад наочно показує операцію push, яка генерує стек. Він також показує стек після двох послідовних операцій поп.
Таким чином, ми бачили стек та його операції в STL. Далі, у цьому підручнику ми побачимо детальну реалізацію ще одного простого контейнера STL, який є “Чергою”.
Черга
Черга - це ще один контейнер у STL, який дуже простий і корисний. Контейнер черги - це копія структури даних черги в C ++. На відміну від стека, у контейнері черги є два кінці, тобто передній і задній.
Елементи додаються до черги ззаду, а видаляються з передньої частини черги. Загалом, у черзі використовується тип домовленості FIFO (First in, First Out).
Щоб реалізувати контейнер черги в програмі, ми повинні включити в код заголовок.
#include
Загальним синтаксисом для оголошення черги є:
черга ім'я_череви;
Ми оголошуємо контейнер черги наступним чином:
Queue myqueue;
Операції черги
Тепер ми побачимо різні операції, що підтримуються чергою.
- натиснути: Функція 'push' додає елемент в кінці черги, тобто в задній частині черги.
- поп: Функція 'pop' видаляє перший елемент черги, тобто елемент в передній частині черги.
Давайте розберемося в push-pop функціях черги.
Розглянемо порожню чергу, оголошену вище myqueue. Тепер ми натискаємо парне число 2 в черзі з операцією
myqueue.push (2);
Тепер черга буде виглядати так:
Далі ми додаємо в чергу «4» із викликом «myqueue.push (4)».
Тепер черга виглядає, як показано нижче:
Як видно вище, елементи штовхаються в чергу із заднього кінця або ззаду.
А тепер давайте поп-операцію в черзі.
myqueue.pop ();
Отже, як ми бачимо, коли викликається pop (), елемент перед чергою видаляється. Це означає, що перший елемент, який введено в чергу, є першим елементом, що вийшов із черги.
- спереду: Ця функція повертає посилання на перший елемент черги.
- назад: Назад повертає посилання на останній елемент у черзі.
- порожній: Перевіряє, чи не порожня черга.
- розмір: Повертає розмір черги, тобто кількість елементів у черзі.
Нижче наведено Приклад програми, яка демонструє операції, що використовуються контейнером черги.
windows 10 шлюз за замовчуванням недоступний
#include #include using namespace std; void printQueue(queue myqueue) { queue secqueue = myqueue; while (!secqueue.empty()) { cout << ' ' << secqueue.front(); secqueue.pop(); } cout << '
'; } int main() { queue myqueue; myqueue.push(2); myqueue.push(4); myqueue.push(6); myqueue.push(8); cout << 'The queue myqueue is : '; printQueue(myqueue); cout << '
myqueue.size() : ' << myqueue.size(); cout << '
myqueue.front() : ' << myqueue.front(); cout << '
myqueue.back() : ' << myqueue.back(); cout << '
myqueue.pop() : '; myqueue.pop(); printQueue(myqueue); return 0; }
Вихід:
Черга в черзі: 2 4 6 8
myqueue.size (): 4
myqueue.front (): 2
myqueue.back (): 8
myqueue.pop (): 4 6 8
Як показано вище, спочатку ми оголошуємо контейнер черги. Потім, використовуючи операцію push, ми додаємо до неї перші чотири парні числа. Після цього ми витягуємо елемент із черги та відображаємо змінену чергу.
Висновок
На цьому ми закінчили цей посібник зі стеків та черг. Як уже зазначалося, це найпростіші контейнери, які ми маємо в STL. Інший варіант контейнера черги відомий як 'Пріоритетна черга'.
У нашому майбутньому підручнику ми обговоримо більше про черги пріоритетів у STL !!
=> Завітайте сюди, щоб вивчити C ++ з нуля.