concurrent_unordered_set Sınıfı
concurrent_unordered_set
sınıfı, K türündeki öğ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şlatma veya belirli bir dolaşma sırasının garantisi değildir.
Sözdizimi
template <typename K,
typename _Hasher = std::hash<K>,
typename key_equality = std::equal_to<K>,
typename _Allocator_type = std::allocator<K>
>,
typename key_equality = std::equal_to<K>,
typename _Allocator_type = std::allocator<K>> class concurrent_unordered_set : public details::_Concurrent_hash<details::_Concurrent_unordered_set_traits<K,
details::_Hash_compare<K,
_Hasher,
key_equality>,
_Allocator_type,
false>>;
Parametreler
K
Anahtar 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ı sıralanmamış küme için bellek ayırma ve serbest bırakma hakkındaki ayrıntıları kapsülleyen depolanmış 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ğerdir std::allocator<K>
.
Ü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 |
Denetlenen dizi için bir sabit yineleyici türü. |
const_local_iterator |
Denetlenen dizi için bir sabit 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 |
Karma işlevin 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 |
Denetlenen dizi için bir demet yineleyici türü. |
pointer |
Bir öğe için bir işaretçi türü. |
reference |
Bir öğe için bir başvuru 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_set | Aşırı yüklendi. Eşzamanlı sıralanmamış bir küme oluşturur. |
Genel Yöntemler
Veri Akışı Adı | Açıklama |
---|---|
hash_function | Depolanan karma işlev nesnesini döndürür. |
sokmak | Aşırı yüklendi. Nesneye concurrent_unordered_set öğe ekler. |
key_eq | Depolanan eşitlik karşılaştırma işlevi nesnesini döndürür. |
değiş tokuş etmek | İki concurrent_unordered_set 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üklendi. Belirtilen konumlarda öğesinden concurrent_unordered_set öğeleri 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üklendi. Başka bir concurrent_unordered_set 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_set
ayrıntılı bilgi için bkz . Paralel Kapsayıcılar ve Nesneler.
Devralma Hiyerarşisi
_Traits
_Concurrent_hash
concurrent_unordered_set
Gereksinimler
Üst bilgi: concurrent_unordered_set.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
Eşzamanlı kapsayıcıdaki ilk öğeye bir yineleyici.
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
Eşzamanlı kapsayıcıdaki son öğenin başarılı olduğu 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
Eşzamanlı kapsayıcıdaki son öğenin başarılı olduğu konuma sabit 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_set
Eşzamanlı sıralanmamış bir küme oluşturur.
explicit concurrent_unordered_set(
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_set(
const allocator_type& _Allocator);
template <typename _Iterator>
concurrent_unordered_set(_Iterator first,
_Iterator last,
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_set(
const concurrent_unordered_set& _Uset);
concurrent_unordered_set(
const concurrent_unordered_set& _Uset,
const allocator_type& _Allocator);
concurrent_unordered_set(
concurrent_unordered_set&& _Uset);
Parametreler
_Yineleyici
Giriş yineleyicisinin türü.
_Number_of_buckets
Bu sıralanmamış küme için ilk demet sayısı.
_Hasher
Bu sıralanmamış kümenin karma işlevi.
key_equality
Bu sıralanmamış küme için eşitlik karşılaştırma işlevi.
_Ayırıcı
Bu sıralanmamış küme için ayırıcı.
birinci
son
_Uset
Öğeleri kopyalamak veya taşımak için kaynak concurrent_unordered_set
nesne.
Açıklamalar
Tüm oluşturucular bir ayırıcı nesnesi _Allocator
depolar ve sıralanmamış kümeyi başlatır.
İlk oluşturucu boş bir başlangıç kümesi 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ış küme 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ış kümenin _Uset
bir kopyasını belirtir.
Son oluşturucu, eşzamanlı sıralanmamış kümesinin _Uset
taşınmasını belirtir.
count
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.
Dönüş Değeri
Anahtarın kapsayıcıda görünme sayısı.
empty
Bir öğe 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 okunmadan hemen sonra bu işlev çağrıldıktan hemen sonra değişebilir.
end
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.
equal_range
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 öğenin başına bir yineleyici, ikinci öğenin ise aralığın sonuna doğru yineleyici olduğu 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.
find
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 veya böyle bir öğe yoksa yineleyiciyi işaret eden bir 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.
insert
Nesneye concurrent_unordered_set
öğe ekler.
std::pair<iterator,
bool> 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>
std::pair<iterator,
bool> 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
_Yineleyici
Ekleme için kullanılan yineleyici türü.
V
Kümeye eklenen değerin türü.
value
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
Yineleyici ve boole değeri içeren bir çift. Daha fazla ayrıntı için Açıklamalar bölümüne bakın.
Açıklamalar
İlk üye işlevi, anahtarı ile eşdeğer sıralamaya sahip olan bir X öğesinin value
dizisinde mevcut olup olmadığını belirler. Aksi takdirde, böyle bir X öğesi oluşturur ve ile value
başlatır. İşlev daha sonra X'i belirten yineleyiciyi where
belirler. Ekleme işlemi gerçekleştiyse işlevi döndürür std::pair(where, true)
. Aksi takdirde döndürür std::pair(where, false)
.
İkinci üye işlevi, ekleme noktasını aramak için denetimli dizi içinde başlangıç noktası olarak kullanarak _Where
insert( value
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.
load_factor
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 demet sayısına bölünmesidir.
float load_factor() const;
Dönüş Değeri
Kapsayıcının yük faktörü.
max_load_factor
Kapsayıcının en yüksek yük faktörünü alır veya ayarlar. En fazla yük faktörü, kapsayıcı iç tablosunu büyütmeden önce herhangi bir demette 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..
max_size
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_set
nesnenin içeriğini bu nesneye atar. Bu yöntem eşzamanlılık açısından güvenli değildir.
concurrent_unordered_set& operator= (const concurrent_unordered_set& _Uset);
concurrent_unordered_set& operator= (concurrent_unordered_set&& _Uset);
Parametreler
_Uset
Kaynak concurrent_unordered_set
nesne.
Dönüş Değeri
Bu concurrent_unordered_set
nesneye bir başvuru.
Açıklamalar
Eşzamanlı sıralanmamış bir kümedeki mevcut öğeleri sildikten sonra, operator=
içeriğini _Uset
eşzamanlı sıralanmamış kümeye kopyalar veya taşır.
Rehash
Karma tabloyu yeniden oluşturur.
void rehash(size_type _Buckets);
Parametreler
_Kova
İstenen demet sayısı.
Açıklamalar
Üye işlevi, demet sayısını en az _Buckets
olacak şekilde değiştirir ve karma tabloyu gerektiği gibi yeniden oluşturur. Demet sayısı 2'lik bir güç 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 (demet sayısı üst sınırından 0 veya daha fazla) bir out_of_range özel durumu oluşturur.
size
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.
swap
İki concurrent_unordered_set
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_set& _Uset);
Parametreler
_Uset
Değiştirecek concurrent_unordered_set
nesne.
unsafe_begin
Belirli bir demet 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
_Kova
Demet dizini.
Dönüş Değeri
Demetin başına işaret eden bir yineleyici.
unsafe_bucket
Bu kapsayıcıda belirli bir anahtarın eşlediğiniz 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.
unsafe_bucket_count
Bu kapsayıcıdaki geçerli demet sayısını döndürür.
size_type unsafe_bucket_count() const;
Dönüş Değeri
Bu kapsayıcıdaki geçerli demet sayısı.
unsafe_bucket_size
Bu kapsayıcının belirli bir demetindeki öğelerin sayısını döndürür.
size_type unsafe_bucket_size(size_type _Bucket);
Parametreler
_Kova
Aranacak demet.
Dönüş Değeri
Bu kapsayıcıdaki geçerli demet sayısı.
unsafe_cbegin
Belirli bir demet için bu kapsayıcıdaki ilk öğeye bir yineleyici döndürür.
const_local_iterator unsafe_cbegin(size_type _Bucket) const;
Parametreler
_Kova
Demet dizini.
Dönüş Değeri
Demetin başına işaret eden bir yineleyici.
unsafe_cend
Belirli bir demetteki son öğenin başarılı olduğu konuma bir yineleyici döndürür.
const_local_iterator unsafe_cend(size_type _Bucket) const;
Parametreler
_Kova
Demet dizini.
Dönüş Değeri
Demetin başına işaret eden bir yineleyici.
unsafe_end
Belirli bir demet için bu kapsayıcıdaki son öğeye bir yineleyici döndürür.
local_iterator unsafe_end(size_type _Bucket);
const_local_iterator unsafe_end(size_type _Bucket) const;
Parametreler
_Kova
Demet dizini.
Dönüş Değeri
Demetin sonuna işaret eden bir yineleyici.
unsafe_erase
Belirtilen konumlarda öğesinden concurrent_unordered_set
öğeleri 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
Silinecek yineleyici konumu.
KVal
Silinecek anahtar değeri.
birinci
son
Yineleyicilerde.
Dönüş Değeri
İlk iki üye işlevi, kaldırılan öğelerin ötesinde kalan ilk öğeyi belirten bir yineleyici döndürür veya böyle bir öğe yoksa end() döndürür. Üçüncü üye işlevi, kaldırmış olduğu öğe sayısını döndürür.
Açıklamalar
İlk üye işlevi tarafından _Where
işaret edilen öğeyi kaldırır. İkinci üye işlevi [ _Begin
, _End
) aralığındaki öğeleri kaldırır.
Üçüncü üye işlevi, equal_range(KVal) ile sınırlandırılan aralıktaki öğeleri kaldırır.
unsafe_max_bucket_count
Bu kapsayıcıdaki demet sayısı üst sınırını döndürür.
size_type unsafe_max_bucket_count() const;
Dönüş Değeri
Bu kapsayıcıdaki demet sayısı üst sınırı.