Perpustakaan C ++ - <deque>

pengantar

Deque adalah singkatan dari Double Ended Queue. Ini adalah kontainer urutan yang dapat mengubah runtime ukurannya. Container adalah sebuah objek yang menyimpan data dengan tipe yang sama. Kontainer urutan menyimpan elemen secara ketat dalam urutan linier.

Elemen deque dapat tersebar di berbagai bagian memori. Wadah menyimpan informasi yang diperlukan untuk memungkinkan akses langsung ke elemen apa pun dalam waktu yang konstan. Tidak seperti vektor, deque tidak dijamin untuk menyimpan semua elemennya di lokasi memori yang berdekatan. Oleh karena itu tidak memungkinkan akses langsung ke data dengan mengimbangi petunjuk. Tapi itu memungkinkan akses langsung ke elemen apapun menggunakan operator subskrip [].

Deque dapat menyusut atau mengembang sesuai kebutuhan dari kedua ujungnya saat dijalankan. Persyaratan penyimpanan dipenuhi secara otomatis oleh pengalokasi internal . Deque menyediakan fungsionalitas yang mirip dengan vektor, tetapi menyediakan cara yang efisien untuk memasukkan dan menghapus data dari ujung mana pun.

Deque berukuran nol juga valid. Dalam hal ini deque.begin () dan deque.end () menunjuk ke lokasi yang sama. Tetapi perilaku memanggil depan () atau belakang () tidak ditentukan.

Definisi

Di bawah ini adalah definisi std :: deque dari file header <deque>

template < class T, class Alloc = allocator<T> > class deque;

Parameter

  • T - Jenis elemen yang dikandung.

    T dapat diganti dengan tipe data lain termasuk tipe yang ditentukan pengguna.

  • Alloc - Jenis objek pengalokasi.

    Secara default, template kelas pengalokasi digunakan, yang mendefinisikan model alokasi memori paling sederhana dan tidak bergantung pada nilai.

Jenis anggota

Jenis anggota berikut dapat digunakan sebagai parameter atau jenis pengembalian berdasarkan fungsi anggota.

Sr.No. Jenis anggota Definisi
1 value_type T (Parameter pertama dari template)
2 jenis_alokasi Alloc (Parameter kedua dari template)
3 referensi value_type &
4 const_reference const value_type &
5 penunjuk value_type *
6 const_pointer const value_type *
7 iterator iterator akses acak ke value_type
8 const_iterator iterator akses acak ke const value_type
9 reverse_iterator std :: reverse_iterator <iterator>
10 const_reverse_iterator std :: reverse_iterator <const_iterator>
11 tipe ukuran size_t
12 perbedaan_tipe ptrdiff_t

Fungsi dari <deque>

Di bawah ini adalah daftar semua metode dari <deque> header.

Konstruktor

Sr.No. Metode & Deskripsi
1 deque :: konstruktor default deque

Membuat deque kosong dengan elemen nol.

2 deque :: konstruktor isi deque

buat deque baru dengan n elemen dan tetapkan val ke setiap elemen deque

3 deque :: konstruktor rentang deque

Membuat deque dengan elemen sebanyak dalam rentang pertama hingga terakhir .

4 deque :: konstruktor salinan deque

Membuat deque dengan salinan setiap elemen yang ada di penampung yang ada.

5 deque :: konstruktor bergerak deque

Membuat deque dengan konten lainnya menggunakan semantik bergerak.

6 deque :: deque penginisialisasi daftar konstruktor

Membuat deque dari daftar inisialisasi.

Penghancur

Sr.No. Metode & Deskripsi
1 deque :: ~ deque

Menghancurkan objek deque dengan membatalkan alokasi memorinya.

Fungsi anggota

Sr.No. Metode & Deskripsi
1 deque :: menetapkan versi rentang

Tetapkan nilai baru ke elemen deque dengan mengganti yang lama.

2 deque :: assign versi isi

Tetapkan nilai baru ke elemen deque dengan mengganti yang lama.

3 deque :: assign versi daftar penginisialisasi

Tetapkan nilai baru ke elemen deque dengan mengganti yang lama.

4 deque :: at

Mengembalikan referensi ke elemen yang ada di lokasi n di deque.

5 deque :: kembali

Mengembalikan referensi ke elemen terakhir deque.

6 deque :: mulai

Kembalikan iterator akses acak yang menunjuk ke elemen pertama deque.

7 deque :: cbegin

Mengembalikan iterator akses acak konstan yang menunjuk ke awal deque.

8 deque :: cend

Mengembalikan iterator akses acak konstan yang menunjuk ke awal deque.

9 deque :: jelas

Hancurkan deque dengan menghapus semua elemen dari deque dan setel ukuran deque ke nol.

10 deque :: crbegin

Mengembalikan iterator terbalik konstan yang menunjuk ke awal pembalik wadah.

11 deque :: crend

Mengembalikan iterator terbalik konstan yang mengarah ke ujung kebalikan dari deque.

12 deque :: emplace

Memperluas wadah dengan memasukkan elemen baru pada posisinya .

13 deque :: emplace_back

Menyisipkan elemen baru di akhir deque.

14 deque :: emplace_front

Menyisipkan elemen baru di awal deque.

15 deque :: kosong

Menguji apakah deque kosong atau tidak.

16 deque :: akhir

Mengembalikan iterator yang menunjuk ke elemen terakhir di penampung deque.

17 deque :: hapus versi posisi

Menghapus elemen tunggal dari deque.

18 deque :: menghapus versi rentang

Menghapus elemen tunggal dari deque.

19 deque :: depan

Mengembalikan referensi ke elemen pertama deque

20 deque :: get_allocator

Mengembalikan pengalokasi yang terkait dengan deque

21 deque :: masukkan versi elemen tunggal

Memperluas wadah dengan memasukkan elemen baru pada posisinya.

22 deque :: masukkan versi isi

Memperluas penampung dengan memasukkan elemen baru ke dalam penampung.

23 deque :: masukkan versi rentang

Memperluas penampung dengan memasukkan elemen baru ke dalam penampung.

24 deque :: masukkan versi pindah

Memperluas penampung dengan memasukkan elemen baru ke dalam penampung.

25 deque :: masukkan versi daftar penginisialisasi

Memperluas penampung dengan memasukkan elemen baru ke dalam penampung.

26 deque :: max_size

Mengembalikan jumlah maksimum elemen yang dapat dipegang oleh deque.

27 deque :: operator = salin versi

Tetapkan konten baru ke deque dengan mengganti yang lama dan ubah ukuran jika perlu.

28 deque :: operator = memindahkan versi

Tetapkan konten baru ke deque dengan mengganti yang lama dan ubah ukuran jika perlu.

29 deque :: operator = versi daftar penginisialisasi

Tetapkan konten baru ke deque dengan mengganti yang lama dan ubah ukuran jika perlu.

30 deque :: operator []

Mengembalikan referensi ke elemen yang ada di lokasi n .

31 deque :: pop_back

Menghapus elemen terakhir dari deque dan mengurangi ukuran deque satu per satu.

32 deque :: pop_front

Menghapus elemen pertama dari deque dan mengurangi ukuran deque satu per satu.

33 deque :: push_back

Menyisipkan elemen baru di akhir deque dan menambah ukuran deque sebanyak satu.

34 deque :: push_back memindahkan versi

Menyisipkan elemen baru di akhir deque dan menambah ukuran deque sebanyak satu.

35 deque :: push_front

Memasukkan elemen baru di depan deque dan menambah ukuran deque satu per satu.

36 deque :: push_front pindah versi

Memasukkan elemen baru di depan deque dan menambah ukuran deque satu per satu.

37 deque :: rbegin

Mengembalikan iterator terbalik yang menunjuk ke elemen terakhir deque.

38 deque :: rend

Mengembalikan iterator terbalik yang menunjuk ke ujung kebalikan dari deque.

39 deque :: ubah ukuran

Mengubah ukuran deque.

40 deque :: mengubah ukuran nilai versi

Mengubah ukuran deque.

41 deque :: shrink_to_fit

Meminta penampung untuk mengurangi kapasitasnya agar sesuai dengan ukurannya.

42 deque :: size

Mengembalikan jumlah elemen yang ada di deque.

43 deque :: swap

Menukar konten deque dengan konten deque x lain .

Fungsi non-anggota kelebihan beban

Sr.No. Metode & Deskripsi
1 operator ==

Menguji apakah dua deque sama atau tidak.

2 operator! =

Menguji apakah dua deque sama atau tidak.

3 operator <

Menguji apakah deque pertama kurang dari yang lain atau tidak.

4 operator <=

Menguji apakah deque pertama kurang dari atau sama dengan yang lain atau tidak.

5 operator>

Menguji apakah deque pertama lebih besar dari yang lain atau tidak.

6 operator> =

Menguji apakah deque pertama lebih besar dari atau sama dengan lainnya atau tidak.

7 menukar

Menukar isi dua deque.