Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
concurrent_unordered_multimap sınıfı, türünde std::pair<const K, _Element_type>öğelerin değişen uzunluklu dizisini denetleen eşzamanlılık açısından güvenli bir kapsayıcıdır. Sıra eşzamanlılık açısından güvenli ekleme, öğe erişimi, yineleyici erişimi ve yineleyici geçişi işlemlerini etkinleştiren bir şekilde temsil edilir. Burada eşzamanlılık açısından güvenli, işaretçilerin veya yineleyicilerin her zaman geçerli olduğu anlamına gelir. Bu, öğe başlatmanın veya belirli bir dolaşma sırasının garantisi değildir.
Sözdizimi
template <typename K,
typename _Element_type,
typename _Hasher = std::hash<K>,
typename key_equality = std::equal_to<K>,
typename _Allocator_type = std::allocator<std::pair<const K, _Element_type>>>
class concurrent_unordered_multimap : public details::_Concurrent_hash<details::_Concurrent_unordered_map_traits<K, _Element_type, details::_Hash_compare<K, _Hasher, key_equality>, _Allocator_type, true>>;
Parametreler
K
Anahtar türü.
_Element_type
Eşlenen tür.
_Hasher
Karma işlev nesne türü. Bu bağımsız değişken isteğe bağlıdır ve varsayılan değerdir std::hash<K>.
key_equality
Eşitlik karşılaştırma işlevi nesne türü. Bu bağımsız değişken isteğe bağlıdır ve varsayılan değerdir std::equal_to<K>.
_Allocator_type
Eşzamanlı vektör için bellek ayırma ve serbest bırakma ile ilgili ayrıntıları kapsülleyen depolanmış yer ayırıcı nesnesini temsil eden tür. Bu bağımsız değişken isteğe bağlıdır ve varsayılan değer , std::allocator<std::pair<Kşeklindedir_Element_type>>.
Üyeler
Genel Tür Tanımları
| Veri Akışı Adı | Açıklama |
|---|---|
allocator_type |
Depolamayı yönetmek için bir ayırıcı türü. |
const_iterator |
Kontrol edilen dizi için sabit bir yineleyici türü. |
const_local_iterator |
Kontrol edilen dizi için sabitlenmiş demet yineleyici türü. |
const_pointer |
Bir öğe için sabit bir işaretçi türü. |
const_reference |
Bir öğe için sabit bir başvuru türü. |
difference_type |
İki öğe arasındaki işaretli mesafenin türü. |
hasher |
Hash işlevinin türü. |
iterator |
Denetlenen dizi için bir yineleyici türü. |
key_equal |
Karşılaştırma işlevinin türü. |
key_type |
Bir sıralama anahtarının türü. |
local_iterator |
Kontrollü dizi için kova yineleyici türü. |
mapped_type |
Her bir anahtar ile ilişkili bir eşlenen değer türü. |
pointer |
Bir öğe için bir işaretçi türü. |
reference |
Öğeye yapılan bir referansın türü. |
size_type |
İki öğe arasındaki işaretsiz bir mesafenin türü. |
value_type |
Öğenin türü. |
Ortak Oluşturucular
| Veri Akışı Adı | Açıklama |
|---|---|
| concurrent_unordered_multimap (eşzamanlı, sırasız çoklu harita) | Aşırı yüklü Eşzamanlı sıralanmamış çoklu harita oluşturur. |
Genel Yöntemler
| Veri Akışı Adı | Açıklama |
|---|---|
| hash_function | Depolanan karma işlev nesnesini döndürür. |
| eklemek | Aşırı yüklü Nesneye concurrent_unordered_multimap öğe ekler. |
| key_eq | Depolanan eşitlik karşılaştırma işlevi nesnesini döndürür. |
| swap | İki concurrent_unordered_multimap nesnenin içeriğini değiştirir. Bu yöntem eşzamanlılık açısından güvenli değildir. |
| unsafe_erase | Aşırı yüklü Belirtilen konumlardaki concurrent_unordered_multimap öğesinden elemanları kaldırır. Bu yöntem eşzamanlılık açısından güvenli değildir. |
Ortak İşleçler
| Veri Akışı Adı | Açıklama |
|---|---|
| operator= | Aşırı yüklü Başka bir concurrent_unordered_multimap nesnenin içeriğini bu nesneye atar. Bu yöntem eşzamanlılık açısından güvenli değildir. |
Açıklamalar
sınıfı hakkında concurrent_unordered_multimap ayrıntılı bilgi için bkz . Paralel Kapsayıcılar ve Nesneler.
Devralma Hiyerarşisi
_Traits
_Concurrent_hash
concurrent_unordered_multimap
Gereksinimler
Üst bilgi: concurrent_unordered_map.h
Ad alanı: eşzamanlılık
başlamak
Eşzamanlı kapsayıcıdaki ilk öğeye işaret eden bir yineleyici döndürür. Bu yöntem eşzamanlılık güvenlidir.
iterator begin();
const_iterator begin() const;
Dönüş Değeri
İlk öğenin eşzamanlı kapsayıcı nesnedeki bir yineleyicisi.
cbegin
Eşzamanlı kapsayıcıdaki ilk öğeye işaret eden bir sabit yineleyici döndürür. Bu yöntem eşzamanlılık güvenlidir.
const_iterator cbegin() const;
Dönüş Değeri
Eşzamanlı kapsayıcıdaki ilk öğeye sabit yineleyici.
cend
Son öğeden sonraki konumu gösteren bir sabit yineleyici döndürür. Bu yöntem eşzamanlılık güvenlidir.
const_iterator cend() const;
Dönüş Değeri
Son öğeyi takip eden konuma işaret eden sabit bir yineleyici.
berrak
Eşzamanlı kapsayıcıdaki tüm öğeleri siler. Bu işlev eşzamanlılık açısından güvenli değildir.
void clear();
concurrent_unordered_multimap
Eşzamanlı sıralanmamış çoklu harita oluşturur.
explicit concurrent_unordered_multimap(
size_type _Number_of_buckets = 8,
const hasher& _Hasher = hasher(),
const key_equal& key_equality = key_equal(),
const allocator_type& _Allocator = allocator_type());
concurrent_unordered_multimap(
const allocator_type& _Allocator);
template <typename _Iterator>
concurrent_unordered_multimap(_Iterator _Begin,
_Iterator _End,
size_type _Number_of_buckets = 8,
const hasher& _Hasher = hasher(),
const key_equal& key_equality = key_equal(),
const allocator_type& _Allocator = allocator_type());
concurrent_unordered_multimap(
const concurrent_unordered_multimap& _Umap);
concurrent_unordered_multimap(
const concurrent_unordered_multimap& _Umap,
const allocator_type& _Allocator);
concurrent_unordered_multimap(
concurrent_unordered_multimap&& _Umap);
Parametreler
_Iterator
Giriş yineleyicisinin türü.
Kova Sayısı
Bu sıralanmamış çoklu harita için ilk demet sayısı.
_Hasher
Bu sıralanmamış çoklu eşleme için hash işlevi.
key_equality
Bu sıralanmamış çoklu harita için eşitlik karşılaştırma işlevi.
_Ayırıcı
Bu sıralanmamış çoklu harita için ayırıcı.
_Başla
Kopyalanacak öğe aralığındaki ilk öğenin konumu.
_Son
Kopyalanacak öğe aralığının ötesindeki ilk öğenin konumu.
_Umap
Öğelerin kopyalanacağı kaynak concurrent_unordered_multimap nesne.
Açıklamalar
Tüm oluşturucular bir ayırıcı nesnesi _Allocator depolar ve sıralanmamış çoklu haritayı başlatır.
İlk oluşturucu boş bir ilk çoklu eşlemeyi belirtir ve kullanılacak demet sayısını, karma işlevini, eşitlik işlevini ve ayırıcı türünü açıkça belirtir.
İkinci oluşturucu, sıralanmamış çoklu harita için bir ayırıcı belirtir.
Üçüncü oluşturucu[ _Begin, _End) yineleyici aralığı tarafından sağlanan değerleri belirtir.
Dördüncü ve beşinci oluşturucular eşzamanlı sıralanmamış çoklu eşlemenin _Umapbir kopyasını belirtir.
Son oluşturucu eşzamanlı sıralanmamış çoklu eşlemenin _Umaptaşınmasını belirtir.
sayı
Belirtilen anahtarla eşleşen öğe sayısını sayar. Bu işlev eşzamanlılık açısından güvenlidir.
size_type count(const key_type& KVal) const;
Parametreler
KVal
Aranacak anahtar kelime.
Dönüş Değeri
Anahtarın kapsayıcıda görünme sayısının sayısı.
boş
Hiçbir öğenin mevcut olup olmadığını sınar. Bu yöntem eşzamanlılık güvenlidir.
bool empty() const;
Dönüş Değeri
true eşzamanlı kapsayıcı boşsa, false aksi takdirde.
Açıklamalar
Eşzamanlı eklemelerin varlığında, eşzamanlı kapsayıcının boş olup olmadığı, dönüş değeri henüz okunmadan önce, bu işlev çağrıldıktan sonra hemen değişebilir.
son
Eşzamanlı kapsayıcıdaki son öğenin başarılı olduğu konumu gösteren bir yineleyici döndürür. Bu yöntem eşzamanlılık güvenlidir.
iterator end();
const_iterator end() const;
Dönüş Değeri
Eşzamanlı kapsayıcıdaki son öğenin başarılı olduğu konuma bir yineleyici.
eşit aralık
Belirtilen anahtarla eşleşen bir aralık bulur. Bu işlev eşzamanlılık açısından güvenlidir.
std::pair<iterator,
iterator> equal_range(
const key_type& KVal);
std::pair<const_iterator,
const_iterator> equal_range(
const key_type& KVal) const;
Parametreler
KVal
Aranacak anahtar değeri.
Dönüş Değeri
İlk öğesi aralığın başlangıcına, ikinci öğesi ise aralığın sonuna bir yineleyici olan bir çift.
Açıklamalar
Eşzamanlı eklemelerin, başlangıç yineleyiciden sonra ve bitiş yineleyiciden önce ek anahtarların eklenmesine neden olması mümkündür.
bulmak
Belirtilen bir anahtarla eşleşen bir öğeyi bulur. Bu işlev eşzamanlılık açısından güvenlidir.
iterator find(const key_type& KVal);
const_iterator find(const key_type& KVal) const;
Parametreler
KVal
Aranacak anahtar değeri.
Dönüş Değeri
Sağlanan anahtarla eşleşen ilk öğenin konumunu işaret eden bir yineleyici veya böyle bir öğe yoksa yineleyici end().
get_allocator
Bu eşzamanlı kapsayıcı için depolanan ayırıcı nesnesini döndürür. Bu yöntem eşzamanlılık güvenlidir.
allocator_type get_allocator() const;
Dönüş Değeri
Bu eşzamanlı kapsayıcı için depolanan ayırıcı nesnesi.
hash_function
Depolanan karma işlev nesnesini döndürür.
hasher hash_function() const;
Dönüş Değeri
Depolanan karma işlev nesnesi.
ekle
Nesneye concurrent_unordered_multimap öğe ekler.
iterator insert(
const value_type& value);
iterator insert(
const_iterator _Where,
const value_type& value);
template<class _Iterator>
void insert(_Iterator first,
_Iterator last);
template<class V>
iterator insert(
V&& value);
template<class V>
typename std::enable_if<!std::is_same<const_iterator,
typename std::remove_reference<V>::type>::value,
iterator>::type insert(
const_iterator _Where,
V&& value);
Parametreler
_Iterator
Ekleme için kullanılan yineleyici türü.
V
Eşlem içine eklenen değerin türü.
değer
Eklenecek değer.
_Nerede
Ekleme noktasını aramak için başlangıç konumu.
birinci
Eklenecek aralığın başlangıcı.
son
Eklenecek aralığın sonu.
Dönüş Değeri
Ekleme konumunu gösteren bir yineleyici.
Açıklamalar
İlk üye işlevi, öğeyi value denetimli diziye ekler, ardından eklenen öğeyi belirten yineleyiciyi döndürür.
İkinci üye işlevi, ekleme noktasını aramak için denetimli dizi içinde başlangıç noktası olarak _Where kullanarak value insert() değerini döndürür.
Üçüncü üye işlevi, [ first, last) aralığındaki öğe değerlerinin sırasını ekler.
Son iki üye işlevi, eklenen değeri oluşturmak için kullanılan dışında value ilk iki işlevle aynı şekilde davranır.
key_eq
Depolanan eşitlik karşılaştırma işlevi nesnesini döndürür.
key_equal key_eq() const;
Dönüş Değeri
Depolanan eşitlik karşılaştırma işlevi nesnesi.
yük faktörü
Kapsayıcının geçerli yük faktörünü hesaplar ve döndürür. Yük faktörü, kapsayıcıdaki öğelerin sayısının kova sayısına bölünmesidir.
float load_factor() const;
Dönüş Değeri
Konteynerin yük faktörü.
max_load_factor (maksimum yük faktörü)
Kapsayıcının maksimum doluluk oranını alır veya ayarlar. En fazla yük faktörü, kapsayıcının tablosunu büyütmeden önce herhangi bir kovada bulunabilecek en fazla öğe sayısıdır.
float max_load_factor() const;
void max_load_factor(float _Newmax);
Parametreler
_Newmax
Dönüş Değeri
İlk üye işlevi depolanan en yüksek yük faktörünü döndürür. İkinci üye işlevi bir değer döndürmez, ancak sağlanan yük faktörü geçersizse out_of_range özel durumu oluşturur.
maksimum_boyut
Ayırıcı tarafından belirlenen eşzamanlı kapsayıcının en büyük boyutunu döndürür. Bu yöntem eşzamanlılık güvenlidir.
size_type max_size() const;
Dönüş Değeri
Bu eşzamanlı kapsayıcıya eklenebilen en fazla öğe sayısı.
Açıklamalar
Bu üst sınır değeri aslında kapsayıcının barındırabileceği değerden daha yüksek olabilir.
operator=
Başka bir concurrent_unordered_multimap nesnenin içeriğini bu nesneye atar. Bu yöntem eşzamanlılık açısından güvenli değildir.
concurrent_unordered_multimap& operator= (const concurrent_unordered_multimap& _Umap);
concurrent_unordered_multimap& operator= (concurrent_unordered_multimap&& _Umap);
Parametreler
_Umap
Kaynak concurrent_unordered_multimap nesne.
Dönüş Değeri
Bu concurrent_unordered_multimap nesnesine bir referans.
Açıklamalar
Eşzamanlı sıralanmamış çoklu eşlemedeki mevcut öğeleri sildikten sonra, operator= içeriğini _Umap eş zamanlı sıralanmamış çoklu eşlemeye kopyalar veya taşır.
yeniden işleme
Karma tabloyu yeniden oluşturur.
void rehash(size_type _Buckets);
Parametreler
_Bucket
İstenen kova sayısı.
Açıklamalar
Üye fonksiyonu, kova sayısını en az _Buckets olacak şekilde değiştirir ve karma tabloyu gerektiği gibi yeniden oluşturur. Kova sayısı 2'nin kuvveti olmalıdır. 2'nin gücü değilse, 2'nin sonraki en büyük gücüne yuvarlanacaktır.
Demet sayısı geçersizse (0 veya maksimum demet sayısından fazla ise) bir out_of_range hatası fırlatır.
boyut
Bu eşzamanlı kapsayıcıdaki öğe sayısını döndürür. Bu yöntem eşzamanlılık güvenlidir.
size_type size() const;
Dönüş Değeri
Kapsayıcıdaki öğelerin sayısı.
Açıklamalar
Eşzamanlı eklemelerin varlığında, dönüş değeri okunmadan önce eşzamanlı kapsayıcıdaki öğelerin sayısı bu işlev çağrıldıktan hemen sonra değişebilir.
değiş tokuş etmek
İki concurrent_unordered_multimap nesnenin içeriğini değiştirir. Bu yöntem eşzamanlılık açısından güvenli değildir.
void swap(concurrent_unordered_multimap& _Umap);
Parametreler
_Umap
Değiştirilecek concurrent_unordered_multimap nesne ile.
güvensiz_başlat
Belirli bir kovan için bu kapsayıcıdaki ilk öğeye bir yineleyici döndürür.
local_iterator unsafe_begin(size_type _Bucket);
const_local_iterator unsafe_begin(size_type _Bucket) const;
Parametreler
_Bucket
Kova dizini.
Dönüş Değeri
Demetin başına işaret eden bir yineleyici.
güvensiz_bucket
Bu kapsayıcıda belirli bir anahtarın eşlendiği demet dizinini döndürür.
size_type unsafe_bucket(const key_type& KVal) const;
Parametreler
KVal
Aranmakta olan öğe anahtarı.
Dönüş Değeri
Bu kapsayıcıdaki anahtarın demet dizini.
güvensiz_kova_sayısı
Bu kapsayıcıdaki mevcut kova sayısını döndürür.
size_type unsafe_bucket_count() const;
Dönüş Değeri
Bu kapsayıcıdaki mevcut kova sayısı.
güvensiz_kova_boyutu
Bu kapsayıcının belirli bir kovasındaki öğelerin sayısını döndürür.
size_type unsafe_bucket_size(size_type _Bucket);
Parametreler
_Bucket
Aranacak kova.
Dönüş Değeri
Bu kapsayıcıdaki geçerli demet sayısı.
unsafe_cbegin
Belirli bir kovan için bu kapsayıcıdaki ilk öğeye bir yineleyici döndürür.
const_local_iterator unsafe_cbegin(size_type _Bucket) const;
Parametreler
_Bucket
Kova dizini.
Dönüş Değeri
Demetin başına işaret eden bir yineleyici.
unsafe_cend
Belirli bir demetteki son öğeden sonraki konuma bir yineleyici döndürür.
const_local_iterator unsafe_cend(size_type _Bucket) const;
Parametreler
_Bucket
Kova dizini.
Dönüş Değeri
Demetin başına işaret eden bir yineleyici.
güvensiz_sonu
Belirli bir kova için bu kapsayıcıdaki son öğeye bir yineleyici geri döndürür.
local_iterator unsafe_end(size_type _Bucket);
const_local_iterator unsafe_end(size_type _Bucket) const;
Parametreler
_Bucket
Kova dizini.
Dönüş Değeri
Demetin sonuna işaret eden bir yineleyici.
güvenli_olmayan_sil
Belirtilen konumlardaki concurrent_unordered_multimap öğesinden elemanları kaldırır. Bu yöntem eşzamanlılık açısından güvenli değildir.
iterator unsafe_erase(
const_iterator _Where);
size_type unsafe_erase(
const key_type& KVal);
iterator unsafe_erase(
const_iterator first,
const_iterator last);
Parametreler
_Nerede
Silme işleminin başlayacağı yineleyici konumu.
KVal
Anahtar değeri sil.
birinci
son
Yineleyiciler
Dönüş Değeri
İlk iki üye işlevi, kaldırılan öğelerin ötesinde kalan ilk öğeyi belirten bir yineleyici veya concurrent_unordered_multimap::endböyle bir öğe yoksa () döndürür. Üçüncü üye işlevi, kaldırmış olduğu öğe sayısını döndürür.
Açıklamalar
İlk üye fonksiyonu, _Where tarafından işaret edilen kontrol edilen dizinin öğesini kaldırır. İkinci üye işlevi [ _Begin, _End) aralığındaki öğeleri kaldırır.
Üçüncü üye işlevi, (KVal) ile concurrent_unordered_multimap::equal_rangesınırlandırılan aralıktaki öğeleri kaldırır.
güvenli olmayan maks_kova_sayısı
Bu kapsayıcıdaki kova sayısının maksimumunu döndürür.
size_type unsafe_max_bucket_count() const;
Dönüş Değeri
Bu kapsayıcıdaki kova sayısı üst sınırı.