C ++ Kitaplığı - <unordered_map>

Unordered_map'e giriş

Sırasız harita, veri yapısı gibi sözlüktür. Her benzersiz anahtarla yalnızca tek bir değerin ilişkilendirildiği bir (anahtar, değer) çifti dizisidir. Genellikle ilişkisel dizi olarak adlandırılır . Anahtarlarına bağlı olarak tek tek öğelerin hızlı bir şekilde alınmasını sağlar. Ayrıca , anahtar değerini bağımsız değişken olarak kullanarak eşlenen değerin doğrudan erişimine izin veren doğrudan erişim operatörünü (alt simge operatörü []) uygular .

Sırasız harita, öğelerini anahtar veya eşlenmiş değerlerine göre belirli bir sırada sıralamaz, bunun yerine, tek tek öğelere doğrudan anahtar değerlerine göre hızlı erişim sağlamak için hash değerlerine bağlı olarak kümeler halinde düzenler.

Sırasız harita, tek tek öğelere anahtarlarıyla erişirken haritadan daha iyi performans gösterir. Ancak aralık yinelemesi için performansları oldukça düşüktür.

Tanım

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

template < class Key,
           class T,
           class Hash = hash<Key>,
           class Pred = equal_to<Key>,
           class Alloc = allocator< pair<const Key,T> >
           > class unordered_map;

Parametreler

  • Key - Anahtarın türü.

  • T - Eşlenen değerlerin türü.

  • Hash- Anahtar türü bir nesneyi bağımsız değişken olarak alan ve ona bağlı olarak size_t türünde benzersiz bir değer döndüren tek işlevli bir nesne türü .

  • Pred- Anahtar türündeki iki bağımsız değişkenin bir bool döndürdüğünü ikili bir yüklem .

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

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

Ü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 anahtar türü Anahtar (Şablonun ilk parametresi)
2 mapped_type T (Şablonun ikinci parametresi)
3 değer türü çift ​​<sabit anahtar_türü, eşlenmiş_tür>
4 hasher Üçüncü şablon parametresi (varsayılan değer: hash <key_type>)
5 key_equal Dördüncü şablon parametresi (varsayılan olarak: equ_to <key_type>)
6 allocator_type Alloc (şablonun beşinci parametresi)
7 referans değer türü&
8 const_reference const value_type &
9 Işaretçi allocator_traits <Alloc> :: işaretçi
10 const_pointer allocator_traits <Alloc> :: const_pointer
11 yineleyici Value_type değer_türü için ileri yineleyici
12 const_iterator Değer_türü değer_türü sabitlemek için bir ileri yineleyici
13 local_iterator Değer_türü için ileri yineleyici
14 const_local_iterator Const değer_türü için ileri yineleyici
15 fark_türü ptrdiff_t
16 Beden Çeşidi size_t

<unordered_map> işlevlerinden

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

İnşaatçılar

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

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

2 unordered_map :: unordered_map kopya yapıcısı

Mevcut unordered_map'te bulunan her öğenin kopyasıyla bir unordered_map oluşturur.

3 unordered_map :: unordered_map taşıma yapıcısı

Diğerlerinin içeriğiyle taşıma anlamlarını kullanarak bir unordered_map oluşturur.

4 unordered_map :: unordered_map aralık yapıcısı

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

5 unordered_map :: unordered_map initializer_list yapıcısı

Başlatma listesinden bir unordered_map oluşturur.

Yıkıcı

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

Unordered_map nesnesini belleğinin ayırmasını kaldırarak yok eder.

Üye fonksiyonları

Sr.No. Yöntem ve Açıklama
1 unordered_map :: at

K anahtarıyla ilişkili eşlenmiş değere bir başvuru döndürür .

2 unordered_map :: kapsayıcı yineleyiciyi başlat

Haritanın ilk öğesine başvuran bir yineleyici döndürür.

3 unordered_map :: kova yineleyicisini başlat

Paketlerinden birindeki ilk öğeyi gösteren bir yineleyici döndürür.

4 unordered_map :: kova

K anahtarına sahip öğenin bulunduğu bölüm numarasını döndürür .

5 unordered_map :: buck_count

Unordered_map kapsayıcıdaki paket sayısını döndürür.

6 unordered_map :: buck_size

N unsurlar hediye sayısını döndürür inci kova.

7 unordered_map :: cbegin kapsayıcı yineleyici

Unordered_map'in ilk öğesine başvuran sabit bir yineleyici döndürür.

8 unordered_map :: cbegin kova yineleyicisi

Paketlerinden birindeki ilk öğeyi işaret eden sabit bir yineleyici döndürür.

9 unordered_map :: cend kapsayıcı yineleyicisi

Unordered_map'in son-son öğesine işaret eden sabit bir yineleyici döndürür .

10 unordered_map :: kova yineleyici cend

Döner sabit bir yineleyici olan noktaları son-uç onun kovalar bir eleman.

11 unordered_map :: temizle

Tüm elemanları kaldırarak unordered_map'i yok eder ve unordered_map'in boyutunu sıfır olarak ayarlar .

12 unordered_map :: count

K anahtarıyla ilişkili eşlenmiş değerlerin sayısını döndürür .

13 unordered_map :: yerleştirmek

Yeni eleman ekleyerek kabı genişletir.

14 unordered_map :: emplace_hint

Öğe için bir konum olarak ipucu kullanarak unordered_map'e yeni bir öğe ekler.

15 unordered_map :: boş

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

16 unordered_map :: kapsayıcı yineleyiciyi sonlandır

Unordered_map'te sonun sonundaki öğeye işaret eden bir yineleyici döndürür .

17 unordered_map :: kova yineleyici sonu

Döner bir yineleyici olan noktaları son-uç onun kovalar bir eleman.

18 unordered_map :: eşit

Belirli bir anahtarla eşleşen öğe aralığını döndürür.

19 unordered_map :: konum sürümünü sil

Unordered_map'in tek bir öğesini konumdan kaldırır .

20 unordered_map :: anahtar sürümünü sil

K anahtarıyla ilişkili eşlenmiş değeri kaldırır .

21 unordered_map :: aralık sürümünü sil

Unordered_map öğesinden öğe aralığını kaldırır.

22 unordered_map :: bul

K anahtarıyla ilişkili bir öğe bulur .

23 unordered_map :: get_allocator

Unordered_map ile ilişkili bir ayırıcı döndürür.

24 unordered_map :: hash_function

Unordered_map konteyner tarafından kullanılan hash işlevi nesnesini hesaplar.

25 unordered_map :: ekle

Unordered_map içine yeni eleman ekleyerek kapsayıcıyı genişletir.

26 unordered_map :: taşıma sürümünü ekle

Unordered_map içine yeni eleman ekleyerek kapsayıcıyı genişletir.

27 unordered_map :: ipucu sürümü ekle

Unordered_map'e yeni eleman ekleyerek kapsamı genişletir.

28 unordered_map :: taşıma ve ipucu sürümü ekle

Yeni eleman ekleyerek unordered_map'i genişletir.

29 unordered_map :: aralık sürümünü ekle

Unordered_map'e yeni öğeler ekleyerek kapsayıcıyı genişletir.

30 unordered_map :: initializer_list sürümünü ekle

Başlatıcı listesinden yeni eleman ekleyerek haritayı genişletir.

31 unordered_map :: key_eq

Anahtarları eşitlik açısından karşılaştıran işlevi döndürür.

32 unordered_map :: load_factor

Unordered_map konteynerinin mevcut yük faktörünü döndürür.

33 unordered_map :: max_bucket_count

Unordered_map kapsayıcısının sahip olabileceği maksimum paket sayısını döndürür.

34 unordered_map :: max_load_factor sürümü al

Unordered_map kapsayıcı için geçerli maksimum yük faktörünü döndürür.

35 unordered_map :: max_load_factor set sürümü

Unordered_map kapsayıcı için yeni yük faktörü atar.

36 unordered_map :: max_size

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

37 unordered_map :: operator = sürümü kopyala

Eski içerikleri değiştirerek yeni içerikleri unordered_map'e atar ve gerekirse boyutu değiştirir.

38 unordered_map :: operator = sürümü taşı

Bir unordered_map'in içeriğini diğerine taşıyın ve gerekirse boyutu değiştirir.

39 unordered_map :: operator = initializer_list sürümü

Başlatıcı listesindeki öğeleri unordered_map'e kopyalayın.

40 unordered_map :: operator []

Anahtar k konteynerdeki bir öğeyle eşleşirse , yöntem öğeye bir başvuru döndürür.

41 unordered_map :: operator [] sürümü taşı

Anahtar k konteynerdeki bir öğeyle eşleşirse , yöntem öğeye bir başvuru döndürür.

42 unordered_map :: rehash

Kaptaki kova sayısını n veya daha fazla olarak ayarlar .

43 unordered_map :: rezerv

Kaptaki kova sayısını en az n öğe içerecek şekilde en uygun şekilde ayarlar .

44 unordered_map :: size

Unordered_map'te bulunan öğelerin sayısını döndürür.

45 unordered_map :: takas

İlk unordered_map'in içeriğini bir başkasıyla değiştirir.

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

Sr.No. Yöntem ve Açıklama
1 unordered_map :: operator ==

İki sırasız haritanın eşit olup olmadığını test eder.

2 unordered_map :: operator! =

İki sırasız haritanın eşit olup olmadığını test eder.

3 unordered_map :: takas

İlk unordered_map'in içeriğini bir başkasıyla değiştirir.

Unordered_multimap'e giriş

Unordered_multimap, veri yapısı gibi sözlüktür. Bu, farklı öğelerin eşdeğer anahtarlara sahip olabileceği bir (anahtar, değer) çifti dizisidir. Eşdeğer anahtarlara sahip öğeler, aynı pakette ve bir eşit_aralık yineleyicinin hepsinde yineleyebileceği şekilde birlikte gruplanır .

Unordered_multimap, öğesini anahtar veya eşlenmiş değerlerine göre belirli bir sırada sıralamaz, bunun yerine anahtar değerlerine göre tek tek öğelere hızlı erişime izin vermek için hash değerlerine bağlı olarak kümeler halinde düzenler.

Tanım

Aşağıda <unordered_map> başlık dosyasından std :: unordered_multimap'in tanımı verilmiştir

template < class Key, 
           class T,
           class Hash = hash<Key>,
           class Pred = equal_to<Key>,
           class Alloc = allocator< pair<const Key,T> >
           > class unordered_multimap;

Parametreler

  • Key - Anahtarın türü.

  • T - Eşlenen değerlerin türü.

  • Hash- Anahtar türü bir nesneyi bağımsız değişken olarak alan ve ona bağlı olarak size_t türünde benzersiz bir değer döndüren tek işlevli bir nesne türü .

  • Pred- Anahtar türündeki iki bağımsız değişkenin bir bool döndürdüğünü ikili bir yüklem .

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

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

Ü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 anahtar türü Anahtar (Şablonun ilk parametresi)
2 mapped_type T (Şablonun ikinci parametresi)
3 değer türü çift ​​<sabit anahtar_türü, eşlenmiş_tür>
4 hasher Üçüncü şablon parametresi (varsayılan değer: hash <key_type>)
5 key_equal Dördüncü şablon parametresi (varsayılan olarak: equ_to <key_type>)
6 allocator_type Alloc (şablonun beşinci parametresi)
7 referans değer türü&
8 const_reference const value_type &
9 Işaretçi allocator_traits <Alloc> :: işaretçi
10 const_pointer allocator_traits <Alloc> :: const_pointer
11 yineleyici Value_type değer_türü için ileri yineleyici
12 const_iterator Değer_türü değer_türü sabitlemek için bir ileri yineleyici
13 local_iterator Değer_türü için ileri yineleyici
14 const_local_iterator Const değer_türü için ileri yineleyici
15 fark_türü ptrdiff_t
16 Beden Çeşidi size_t

<unordered_multimap> 'den işlevler

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

İnşaatçılar

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

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

2 unordered_multimap :: unordered_multimap () kopya oluşturucu

Mevcut unordered_multimap'te bulunan her öğenin kopyasıyla bir unordered_multimap oluşturur.

3 unordered_multimap :: unordered_multimap () hareket yapıcı

Diğerlerinin içerikleriyle hareket anlamını kullanarak bir unordered_multimap oluşturur.

4 unordered_multimap :: unordered_multimap () aralık yapıcısı

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

5 unordered_multimap :: unordered_multimap () initializer_list yapıcısı

Başlatma listesinden bir unordered_multimap oluşturur.

Yıkıcı

Sr.No. Yöntem ve Açıklama
1 unordered_multimap :: ~ unordered_multimap ()

Unordered_multimap nesnesini belleğinin ayırmasını kaldırarak yok eder.

Üye fonksiyonları

Sr.No. Yöntem ve Açıklama
1 unordered_multimap :: begin () kapsayıcı yineleyici

Unordered_mulitmap'in ilk öğesine başvuran bir yineleyici döndürür.

2 unordered_multimap :: begin () kova yineleyicisi

Paketlerinden birindeki ilk öğeyi gösteren bir yineleyici döndürür.

3 unordered_multimap :: kova ()

K anahtarına sahip öğenin bulunduğu bölüm numarasını döndürür .

4 unordered_multimap :: kova_sayısı ()

Unordered_multimap kapsayıcıda bulunan paketlerin sayısını döndürür.

5 unordered_multimap :: kova_size ()

N unsurlar hediye sayısını döndürür inci kova.

6 unordered_multimap :: cbegin () kapsayıcı yineleyici

Unordered_multimap'in ilk öğesine başvuran sabit bir yineleyici döndürür.

7 unordered_multimap :: cbegin () kova yineleyici

Paketlerinden birindeki ilk öğeyi işaret eden sabit bir yineleyici döndürür.

8 unordered_multimap :: cend () kapsayıcı yineleyici

Unordered_multimap'in sonun sonundaki öğesine işaret eden sabit bir yineleyici döndürür .

9 unordered_multimap :: cend () kova yineleyicisi

Döner sabit bir yineleyici olan noktaları son-uç onun kovalar bir eleman.

10 unordered_multimap :: clear ()

Tüm öğeleri kaldırarak unordered_multimap'i yok eder ve unordered_multimap boyutunu sıfır olarak ayarlar .

11 unordered_multimap :: count ()

K anahtarıyla ilişkili eşlenmiş değerlerin sayısını döndürür .

12 unordered_multimap :: yerleştirme ()

Yeni eleman ekleyerek kabı genişletir.

13 unordered_multimap :: emplace_hint ()

Öğe konumu olarak ipucu kullanarak unordered_multimap'e yeni bir öğe ekler.

14 unordered_multimap :: boş ()

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

15 unordered_multimap :: end () kapsayıcı yineleyici

Unordered_multimap'te sonun sonundaki öğeye işaret eden bir yineleyici döndürür .

16 unordered_multimap :: end () kova yineleyici

Döner bir yineleyici olan noktaları son-uç onun kovalar bir eleman.

17 unordered_multimap :: eşit_aralık ()

Belirli bir anahtarla eşleşen öğe aralığını döndürür.

18 unordered_multimap :: silme () konum versiyonu

Unordered_multimap'in tek bir öğesini konumdan kaldırır .

19 unordered_multimap :: sil () anahtar sürümü

K anahtarıyla ilişkili eşlenmiş değeri kaldırır .

20 unordered_multimap :: erase () aralık versiyonu

Unordered_multimap öğesinin aralığını kaldırır.

21 unordered_multimap :: bul ()

K anahtarıyla ilişkili bir öğe bulur .

22 unordered_multimap :: get_allocator ()

Unordered_multimap ile ilişkili bir ayırıcı döndürür.

23 unordered_multimap :: hash_function ()

Unordered_multimap konteyner tarafından kullanılan karma işlevi nesnesini hesaplar.

24 unordered_multimap :: insert () değer versiyonu

Unordered_multimap içine yeni eleman ekleyerek kapsayıcıyı genişletir.

25 unordered_multimap :: insert () sürümü taşı

Yeni eleman ekleyerek unordered_multimap'i genişletir.

26 unordered_multimap :: insert () ipucu sürümü

Unordered_multimap içine yeni eleman ekleyerek kapsayıcıyı genişletir.

27 unordered_multimap :: insert () ipucu sürümü taşı

Unordered_multimap'e taşıma semantiğini kullanarak yeni eleman ekleyerek kapsayıcıyı genişletir.

28 unordered_multimap :: insert () aralık versiyonu

Unordered_multimap'e yeni öğeler ekleyerek kapsayıcıyı genişletir.

29 unordered_multimap :: insert () initializer_list sürümü

Başlatıcı listesinden yeni eleman ekleyerek unordered_multimap'i genişletir.

30 unordered_multimap :: key_eq ()

Anahtarları eşitlik açısından karşılaştıran işlevi döndürür.

31 unordered_multimap :: load_factor ()

Unordered_multimap kapsayıcının mevcut yük faktörünü döndürür.

32 unordered_multimap :: max_bucket_count ()

Unordered_multimap kapsayıcısının sahip olabileceği maksimum paket sayısını döndürür.

33 unordered_multimap :: max_load_factor () sürümü al

Unordered_multimap konteyner için geçerli maksimum yük faktörünü döndürür.

34 unordered_multimap :: max_load_factor () set sürümü

Unordered_multimap konteyner için yeni yük faktörü atar.

35 unordered_multimap :: max_size ()

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

36 unordered_multimap :: operator = () sürümü kopyala

Eski içerikleri değiştirerek yeni içerikleri unordered_multimap'e atar ve gerekirse boyutu değiştirir.

37 unordered_multimap :: operator = () sürümü taşı

Bir unordered_multimap'in içeriğini diğerine taşıyın ve gerekirse boyutu değiştirir.

38 unordered_multimap :: operator = () initializer_list sürümü

Başlatıcı listesindeki öğeleri unordered_multimap'e kopyalayın.

39 unordered_multimap :: rehash ()

Kaptaki kova sayısını n veya daha fazla olarak ayarlar .

40 unordered_multimap :: rezerv ()

Kaptaki kova sayısını en az n öğe içerecek şekilde en uygun şekilde ayarlar .

41 unordered_multimap :: size ()

Unordered_multimap'te bulunan öğelerin sayısını döndürür.

42 unordered_multimap :: takas ()

İlk unordered_multimap'in içeriğini bir başkasıyla değiştirir.

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

Sr.No. Yöntem ve Açıklama
1 unordered_multimap :: operator == ()

İki unordered_multimaps'in eşit olup olmadığını test eder.

2 unordered_multimap :: operatör! = ()

İki unordered_multimaps'in eşit olup olmadığını test eder.

3 unordered_multimap :: takas ()

İlk unordered_multimap'in içeriğini bir başkasıyla değiştirir.