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. |