Deque
Lekcja 6 z 23 w kursie C++ – Standardowa biblioteka szablonów w Coddy.
Deque to kontener sekwencyjny w C++, nazywany również kolejką dwustronną. O zwykłej kolejce dowiesz się później na tym kursie, w rozdziale dotyczącym adapterów kontenerów. Na razie warto wiedzieć, że w zwykłej kolejce elementy są wstawiane z tyłu i usuwane z przodu. W deque możemy jednak wstawiać i usuwać elementy zarówno z przodu, jak i z tyłu.

Implementujemy strukturę danych deque, dołączając bibliotekę na początku naszego pliku .cpp za pomocą #import <deque> (możemy również uzyskać dostęp do deque, dołączając plik nagłówkowy bits/stdc++.h)
Następnie tworzymy deque za pomocą następującej składni:
deque<data_type> deque_name;Najpierw używamy słowa kluczowego deque. Następnie podajemy typ zmiennej, którą chcemy przechowywać w deque, a na końcu określamy nazwę zmiennej deque.
deque<int> numbers;Możemy również zainicjalizować deque podczas jej deklarowania, używając tej samej składni co dla struktury danych vector:
deque<int> numbers = {1, 2, 3, 4, 5};
cout << numbers[0];Output:
1Elementy wstawiamy z tyłu obiektu deque za pomocą metody push_back(), a z przodu za pomocą metody push_front().
deque<int> numbers = {2, 3};
numbers.push_front(1);
numbers.push_back(4);
for(int i = 0; i < numbers.size(); i++)
cout << numbers[i] << " ";Output:
1 2 3 4Metody deque
| Metoda | Działanie |
| push_back() | Wstawia nowy element na końcu |
| push_front() | Wstawia nowy element na początku |
| pop_back() | Usuwa element z końca |
| pop_front() | Usuwa element z początku |
| size() | Zwraca liczbę elementów |
| empty() | Zwraca informację, czy deque jest pusta |
| clear() | Usuwa wszystkie elementy z deque |
Wyzwanie
ŁatwyUżytkownik będzie wprowadzać dodatnie liczby, aż poda -1. Wstawiaj każdą liczbę do deque, zaczynając od pierwszej z przodu, drugiej z tyłu, trzeciej z przodu itd... Następnie za pomocą pętli przejdź przez deque i wypisz każdy element, oddzielając elementy pojedynczą spacją.
Input
5
10
15
20
25
30
-1Output
25 15 5 10 20 30Spróbuj swoich sił
#include <deque>
#include <iostream>
using namespace std;
int main()
{
// Enter your code here
return 0;
}Wszystkie lekcje w sekcji C++ – Standardowa biblioteka szablonów
Poćwicz samodzielnie: Kompilator C++ online