C ++ Kitaplığı - <deque>

Giriş

Deque kısaltmasıdır Double Ended Queue. Çalışma süresini değiştirebilen bir sıra kapsayıcıdır. Konteyner, aynı türdeki verileri tutan bir nesnedir. Sıra kapları, öğeleri kesinlikle doğrusal sırayla depolar.

Deque unsurları, farklı bellek parçalarına dağılabilir. Konteyner, herhangi bir öğeye sabit zamanda doğrudan erişim sağlamak için gerekli bilgileri depolar. Vektörlerin aksine, deque'in tüm öğelerini bitişik bellek konumlarında saklaması garanti edilmez. Bu nedenle, işaretçileri dengeleyerek verilere doğrudan erişime izin vermez. Ancak alt simge işleci [] kullanarak herhangi bir öğeye doğrudan erişim sağlar.

Deque, çalışma zamanında her iki uçtan gerektiği gibi küçülebilir veya genişleyebilir. Depolama gereksinimi, dahili ayırıcı tarafından otomatik olarak yerine getirilir . Deque, vektörlerle benzer işlevsellik sağlar, ancak herhangi bir uçtan veri eklemek ve silmek için verimli bir yol sağlar.

Sıfır boyutlu deque'ler de geçerlidir. Bu durumda deque.begin () ve deque.end () aynı konumu gösterir. Ancak front () veya back () çağırma davranışı tanımsızdır.

Tanım

Aşağıda <deque> başlık dosyasından std :: deque tanımı bulunmaktadır

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

Parametreler

  • T - İçerdiği öğenin türü.

    T, kullanıcı tanımlı tür dahil olmak üzere herhangi bir başka veri türü ile ikame edilebilir.

  • Alloc - Ayırıcı nesnenin türü.

    Varsayılan olarak, en basit bellek ayırma modelini tanımlayan ve değerden bağımsız olan ayırıcı sınıfı şablonu kullanılır.

Üye türleri

Aşağıdaki üye türleri, üye işlevlere göre parametre veya dönüş türü olarak kullanılabilir.

Sr.No. Üye türleri Tanım
1 değer türü T (Şablonun ilk parametresi)
2 allocator_type Alloc (Şablonun ikinci parametresi)
3 referans değer türü&
4 const_reference const value_type &
5 Işaretçi değer türü*
6 const_pointer const değer_türü *
7 yineleyici value_type'a rastgele erişim yineleyicisi
8 const_iterator const value_type için bir rastgele erişim yineleyicisi
9 reverse_iterator std :: ters_iterator <iterator>
10 const_reverse_iterator std :: ters_iterator <const_iterator>
11 Beden Çeşidi size_t
12 fark_türü ptrdiff_t

<deque> kaynaklı işlevler

Aşağıda <deque> başlığındaki tüm yöntemlerin listesi bulunmaktadır.

İnşaatçılar

Sr.No. Yöntem ve Açıklama
1 deque :: deque varsayılan kurucu

Sıfır elemanlı boş bir dekor oluşturur.

2 deque :: deque dolgu yapıcısı

n elemanlı yeni bir dekor oluşturun ve her deque elemanına val atayın

3 deque :: deque aralık yapıcısı

Aralığında gibi birçok elemanlar olarak bir deque oluşturur ilk için son .

4 deque :: deque kopyalama yapıcısı

Mevcut kapta bulunan her öğenin kopyasıyla bir dekor oluşturur.

5 deque :: deque hareket yapıcısı

Diğerlerinin içeriğiyle hareket anlambilimini kullanarak bir deque oluşturur.

6 deque :: deque başlatıcı liste yapıcısı

Başlatma listesinden bir deque oluşturur.

Yıkıcı

Sr.No. Yöntem ve Açıklama
1 deque :: ~ deque

Belleğini serbest bırakarak deque nesnesini yok eder.

Üye fonksiyonları

Sr.No. Yöntem ve Açıklama
1 deque :: aralık sürümünü ata

Eski değerleri değiştirerek deque elemanlarına yeni değerler atayın.

2 deque :: dolgu sürümünü ata

Eski değerleri değiştirerek deque elemanlarına yeni değerler atayın.

3 deque :: başlatıcı listesi sürümünü ata

Eski değerleri değiştirerek deque elemanlarına yeni değerler atayın.

4 deque :: at

Arka planda n konumunda bulunan öğeye referans verir .

5 deque :: geri

Deque'in son öğesine bir başvuru döndürür.

6 deque :: begin

Deque'in ilk öğesine işaret eden bir rastgele erişim yineleyicisi döndürür.

7 deque :: cbegin

Süslemenin başlangıcına işaret eden sabit bir rastgele erişim yineleyicisi döndürür.

8 deque :: cend

Süslemenin başlangıcına işaret eden sabit bir rastgele erişim yineleyicisi döndürür.

9 deque :: temizle

Tüm öğeleri arka plandan kaldırarak süslemeyi yok eder ve dekanın boyutunu sıfıra ayarlar.

10 deque :: crbegin

Kabın ters çevirici başlangıcına işaret eden sabit bir ters yineleyici döndürür.

11 deque :: crend

Ardıl işlemin ters ucunu gösteren sabit bir ters yineleyici döndürür.

12 deque :: yerleştirmek

Yeni elemanın sokulmasıyla kabı uzatır pozisyonda .

13 deque :: emplace_back

Süslemenin sonuna yeni eleman ekler.

14 deque :: emplace_front

Süslemenin başlangıcına yeni eleman ekler.

15 deque :: boş

Deque'in boş olup olmadığını test eder.

16 deque :: end

Deque kapsayıcısındaki sondan sonraki öğeye işaret eden bir yineleyici döndürür .

17 deque :: pozisyon versiyonunu sil

Tek bir öğeyi arka plandan kaldırır.

18 deque :: aralık sürümünü sil

Tek bir öğeyi arka plandan kaldırır.

19 deque :: ön

Deque'in ilk öğesine bir referans verir

20 deque :: get_allocator

Deque ile ilişkili bir ayırıcı verir

21 deque :: tek elemanlı versiyon ekle

Konumuna yeni eleman ekleyerek kabı genişletir .

22 deque :: dolgu versiyonunu ekle

Konteynere yeni eleman ekleyerek konteyneri genişletir.

23 deque :: aralık versiyonu ekle

Konteynere yeni eleman ekleyerek konteyneri genişletir.

24 deque :: taşıma sürümünü ekle

Konteynere yeni eleman ekleyerek konteyneri genişletir.

25 deque :: başlatıcı listesi sürümü ekle

Konteynere yeni eleman ekleyerek konteyneri genişletir.

26 deque :: max_size

Deque tarafından tutulabilecek maksimum öğe sayısını döndürür.

27 deque :: operator = sürümü kopyala

Eskileri değiştirerek yeni içerikleri deque'e atayın ve gerekirse boyutu değiştirin.

28 deque :: operator = sürümü taşı

Eskileri değiştirerek yeni içerikleri deque'e atayın ve gerekirse boyutu değiştirin.

29 deque :: operator = başlatıcı listesi sürümü

Eskileri değiştirerek yeni içerikleri deque'e atayın ve gerekirse boyutu değiştirin.

30 deque :: operator []

N konumunda bulunan öğeye bir başvuru döndürür .

31 deque :: pop_back

Son elemanı dekordan çıkarır ve dekor boyutunu birer birer azaltır.

32 deque :: pop_front

İlk öğeyi dekordan çıkarır ve dekor boyutunu bir azaltır.

33 deque :: push_back

Süslemenin sonuna yeni eleman ekler ve dekorun boyutunu birer birer artırır.

34 deque :: push_back taşıma sürümü

Süslemenin sonuna yeni eleman ekler ve dekorun boyutunu birer birer artırır.

35 deque :: push_front

Dekorun ön tarafına yeni eleman ekler ve dekor boyutunu birer birer artırır.

36 deque :: push_front taşıma sürümü

Dekorun ön tarafına yeni eleman ekler ve dekor boyutunu birer birer artırır.

37 deque :: rbegin

Deque'in son öğesine işaret eden bir ters yineleyici döndürür.

38 deque :: rendelemek

Süslemenin ters ucunu gösteren bir ters yineleyici döndürür.

39 deque :: yeniden boyutlandır

Dekore boyutunu değiştirir.

40 deque :: değer sürümünü yeniden boyutlandır

Dekore boyutunu değiştirir.

41 deque :: shrink_to_fit

Konteynerin kapasitesini boyutuna sığdırmasını ister.

42 deque :: size

Sıradaki mevcut elemanların sayısını döndürür.

43 deque :: takas

Deque içeriğini başka bir deque x içeriğiyle değiştirir .

Üye olmayan aşırı yüklenmiş işlevler

Sr.No. Yöntem ve Açıklama
1 operatör ==

İki sıranın eşit olup olmadığını test eder.

2 operatör! =

İki sıranın eşit olup olmadığını test eder.

3 operatör <

İlk beklemenin diğerinden daha az olup olmadığını test eder.

4 operatör <=

İlk sıranın diğerinden küçük veya diğerine eşit olup olmadığını test eder.

5 operatör>

İlk sıranın diğerinden daha büyük olup olmadığını test eder.

6 operatör> =

İlk sıranın diğerinden büyük veya diğerine eşit olup olmadığını test eder.

7 takas

İki deque'in içeriğini değiştirir.