Aracılığıyla paylaş


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 _Srcbir kopyasını belirtir.

Altıncı ve yedinci oluşturucular öncelik kuyruğunun _Srctaşı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.

Ayrıca bkz.

Eşzamanlılık Ad Alanı
Paralel Kapsayıcılar ve Nesneler