concurrent_priority_queue Sınıfı
concurrent_priority_queue
sınıfı, birden çok iş parçacığının öğeleri eşzamanlı olarak göndermesine ve açmasına olanak tanıyan bir kapsayıcıdır. Öğeler, önceliğin şablon bağımsız değişkeni olarak sağlanan bir functor tarafından belirlendiği öncelik sırasına göre gösterilir.
Sözdizimi
template <typename T,
typename _Compare= std::less<T>,
typename _Ax = std::allocator<T>
>,
typename _Ax = std::allocator<T>> class concurrent_priority_queue;
Parametreler
T
Öncelik kuyruğunda depolanacak öğelerin veri türü.
_Karşılaştırmak
Öncelik kuyruğundaki göreli düzenlerini belirlemek için sıralama anahtarları olarak iki öğe değerini karşılaştırabilen işlev nesnesinin türü. Bu bağımsız değişken isteğe bağlıdır ve ikili koşul less<T>
varsayılan değerdir.
_Balta
Eş zamanlı öncelik sırası 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 allocator<T>
.
Üyeler
Genel Tür Tanımları
Veri Akışı Adı | Açıklama |
---|---|
allocator_type |
Eşzamanlı öncelik kuyruğu için ayırıcı sınıfını temsil eden bir tür. |
const_reference |
Eşzamanlı öncelik kuyruğunda depolanan türün bir öğesine const başvuruyu temsil eden bir tür. |
reference |
Eşzamanlı öncelik kuyruğunda depolanan türün bir öğesine başvuruyu temsil eden bir tür. |
size_type |
Eşzamanlı öncelik kuyruğundaki öğe sayısını sayan bir tür. |
value_type |
Eşzamanlı öncelik kuyruğunda depolanan veri türünü temsil eden bir tür. |
Ortak Oluşturucular
Veri Akışı Adı | Açıklama |
---|---|
concurrent_priority_queue | Aşırı yüklendi. Eşzamanlı öncelik sırası oluşturur. |
Genel Yöntemler
Veri Akışı Adı | Açıklama |
---|---|
berrak | Eşzamanlı önceliğe göre tüm öğeleri siler. Bu yöntem eşzamanlılık açısından güvenli değildir. |
empty | Bu yöntem çağrıldığında eşzamanlı öncelik kuyruğunun boş olup olmadığını test eder. Bu yöntem eşzamanlılık açısından güvenlidir. |
get_allocator | Eşzamanlı öncelik kuyruğu oluşturmak için kullanılan ayırıcının bir kopyasını döndürür. Bu yöntem eşzamanlılık açısından güvenlidir. |
push | Aşırı yüklendi. Eşzamanlı öncelik kuyruğuna bir öğe ekler. Bu yöntem eşzamanlılık açısından güvenlidir. |
boyut | Eşzamanlı öncelik kuyruğundaki öğe sayısını döndürür. Bu yöntem eşzamanlılık açısından güvenlidir. |
değiş tokuş etmek | İki eşzamanlı öncelik kuyruğunun içeriğini değiştirir. Bu yöntem eşzamanlılık açısından güvenli değildir. |
try_pop | Kuyruk boş değilse kuyruktan en yüksek öncelikli öğeyi kaldırır ve döndürür. Bu yöntem eşzamanlılık açısından güvenlidir. |
Ortak İşleçler
Veri Akışı Adı | Açıklama |
---|---|
operator= | Aşırı yüklendi. Başka bir concurrent_priority_queue 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_priority_queue
ayrıntılı bilgi için bkz . Paralel Kapsayıcılar ve Nesneler.
Devralma Hiyerarşisi
concurrent_priority_queue
Gereksinimler
Üst bilgi: concurrent_priority_queue.h
Ad alanı: eşzamanlılık
berrak
Eşzamanlı önceliğe göre tüm öğeleri siler. Bu yöntem eşzamanlılık açısından güvenli değildir.
void clear();
Açıklamalar
clear
eşzamanlılık açısından güvenli değildir. Bu yöntemi çağırdığınızda eş zamanlı öncelik kuyruğunda başka hiçbir iş parçacığının yöntem çağırmadığından emin olmanız gerekir. clear
bellek boşaltmaz.
concurrent_priority_queue
Eşzamanlı öncelik sırası oluşturur.
explicit concurrent_priority_queue(
const allocator_type& _Al = allocator_type());
explicit concurrent_priority_queue(
size_type _Init_capacity,
const allocator_type& _Al = allocator_type());
template<typename _InputIterator>
concurrent_priority_queue(_InputIterator _Begin,
_InputIterator _End,
const allocator_type& _Al = allocator_type());
concurrent_priority_queue(
const concurrent_priority_queue& _Src);
concurrent_priority_queue(
const concurrent_priority_queue& _Src,
const allocator_type& _Al);
concurrent_priority_queue(
concurrent_priority_queue&& _Src);
concurrent_priority_queue(
concurrent_priority_queue&& _Src,
const allocator_type& _Al);
Parametreler
_InputIterator
Giriş yineleyicisinin türü.
_Al
Bu nesneyle kullanılacak kaynak ayırıcı sınıfı.
_Init_capacity
Nesnenin concurrent_priority_queue
ilk kapasitesi.
_Başlamak
Kopyalanacak öğe aralığındaki ilk öğenin konumu.
_Son
Kopyalanacak öğe aralığının ötesindeki ilk öğenin konumu.
_Src
Öğeleri kopyalamak veya taşımak için kaynak concurrent_priority_queue
nesne.
Açıklamalar
Tüm oluşturucular bir ayırıcı nesnesi _Al
depolar ve öncelik sırasını başlatır.
İlk oluşturucu boş bir ilk öncelik kuyruğu belirtir ve isteğe bağlı olarak bir ayırıcı belirtir.
İkinci oluşturucu, ilk kapasiteye _Init_capacity
sahip bir öncelik kuyruğu belirtir ve isteğe bağlı olarak bir ayırıcı belirtir.
Üçüncü oluşturucu[ _Begin
, _End
) yineleyici aralığı tarafından sağlanan değerleri belirtir ve isteğe bağlı olarak bir ayırıcı belirtir.
Dördüncü ve beşinci oluşturucular öncelik kuyruğunun _Src
bir kopyasını belirtir.
Altıncı ve yedinci oluşturucular öncelik kuyruğunun _Src
taşınmasını belirtir.
empty
Bu yöntem çağrıldığında eşzamanlı öncelik kuyruğunun boş olup olmadığını test eder. Bu yöntem eşzamanlılık açısından güvenlidir.
bool empty() const;
Dönüş Değeri
true
öncelik sırası işlev çağrıldığı anda boşsa, false
aksi takdirde.
get_allocator
Eşzamanlı öncelik kuyruğu oluşturmak için kullanılan ayırıcının bir kopyasını döndürür. Bu yöntem eşzamanlılık açısından güvenlidir.
allocator_type get_allocator() const;
Dönüş Değeri
Nesnesini oluşturmak için kullanılan ayırıcının concurrent_priority_queue
bir kopyası.
operator=
Başka bir concurrent_priority_queue
nesnenin içeriğini bu nesneye atar. Bu yöntem eşzamanlılık açısından güvenli değildir.
concurrent_priority_queue& operator= (const concurrent_priority_queue& _Src);
concurrent_priority_queue& operator= (concurrent_priority_queue&& _Src);
Parametreler
_Src
Kaynak concurrent_priority_queue
nesne.
Dönüş Değeri
Bu concurrent_priority_queue
nesneye bir başvuru.
push
Eşzamanlı öncelik kuyruğuna bir öğe ekler. Bu yöntem eşzamanlılık açısından güvenlidir.
void push(const value_type& _Elem);
void push(value_type&& _Elem);
Parametreler
_Elem
Eşzamanlı öncelik kuyruğuna eklenecek öğe.
size
Eşzamanlı öncelik kuyruğundaki öğe sayısını döndürür. Bu yöntem eşzamanlılık açısından güvenlidir.
size_type size() const;
Dönüş Değeri
Bu concurrent_priority_queue
nesnedeki öğelerin sayısı.
Açıklamalar
Döndürülen boyutun işlevine push
çağrılar tarafından eklenen tüm öğeleri içermesi garanti edilir. Ancak, bekleyen eşzamanlı işlemlerin sonuçlarını yansıtmayabilir.
swap
İki eşzamanlı öncelik kuyruğunun içeriğini değiştirir. Bu yöntem eşzamanlılık açısından güvenli değildir.
void swap(concurrent_priority_queue& _Queue);
Parametreler
_Sıra
İçindekileri concurrent_priority_queue
değiştirecek nesne.
try_pop
Kuyruk boş değilse kuyruktan en yüksek öncelikli öğeyi kaldırır ve döndürür. Bu yöntem eşzamanlılık açısından güvenlidir.
bool try_pop(reference _Elem);
Parametreler
_Elem
Kuyruk boş değilse en yüksek öncelikli öğeyle doldurulacak bir değişken başvurusu.
Dönüş Değeri
true
bir değer oluşturulduysa, false
aksi takdirde.