Share via


Kelas concurrent_priority_queue

Kelas concurrent_priority_queue adalah kontainer yang memungkinkan beberapa utas untuk secara bersamaan mendorong dan memunculkan item. Item dimunculkan dalam urutan prioritas di mana prioritas ditentukan oleh funktor yang disediakan sebagai argumen templat.

Sintaks

template <typename T,
    typename _Compare= std::less<T>,
    typename _Ax = std::allocator<T>
>,
    typename _Ax = std::allocator<T>> class concurrent_priority_queue;

Parameter

T
Jenis data elemen yang akan disimpan dalam antrean prioritas.

_Bandingkan
Jenis objek fungsi yang dapat membandingkan dua nilai elemen sebagai kunci pengurutan untuk menentukan urutan relatifnya dalam antrean prioritas. Argumen ini bersifat opsional dan predikat less<T> biner adalah nilai default.

_Ax
Jenis yang mewakili objek alokator tersimpan yang merangkum detail tentang alokasi dan alokasi memori untuk antrean prioritas bersamaan. Argumen ini bersifat opsional dan nilai defaultnya adalah allocator<T>.

Anggota

Typedef Publik

Nama Deskripsi
allocator_type Jenis yang mewakili kelas alokator untuk antrean prioritas bersamaan.
const_reference Jenis yang mewakili referensi const ke elemen jenis yang disimpan dalam antrean prioritas bersamaan.
reference Jenis yang mewakili referensi ke elemen jenis yang disimpan dalam antrean prioritas bersamaan.
size_type Jenis yang menghitung jumlah elemen dalam antrean prioritas bersamaan.
value_type Jenis yang mewakili jenis data yang disimpan dalam antrean prioritas bersamaan.

Konstruktor Publik

Nama Deskripsi
concurrent_priority_queue Kelebihan beban. Membuat antrean prioritas bersamaan.

Metode Publik

Nama Deskripsi
hapus Menghapus semua elemen dalam prioritas bersamaan. Metode ini tidak aman konkurensi.
kosong Menguji apakah antrean prioritas bersamaan kosong pada saat metode ini dipanggil. Metode ini aman konkurensi.
get_allocator Mengembalikan salinan alokator yang digunakan untuk membuat antrean prioritas bersamaan. Metode ini aman konkurensi.
Mendorong Kelebihan beban. Menambahkan elemen ke antrean prioritas bersamaan. Metode ini aman konkurensi.
ukuran Mengembalikan jumlah elemen dalam antrean prioritas bersamaan. Metode ini aman konkurensi.
tukar Menukar isi dua antrean prioritas bersamaan. Metode ini tidak aman konkurensi.
try_pop Menghapus dan mengembalikan elemen prioritas tertinggi dari antrean jika antrean tidak kosong. Metode ini aman konkurensi.

Operator Publik

Nama Deskripsi
operator= Kelebihan beban. Menetapkan isi objek lain concurrent_priority_queue untuk objek ini. Metode ini tidak aman konkurensi.

Keterangan

Untuk informasi terperinci tentang concurrent_priority_queue kelas, lihat Kontainer dan Objek Paralel.

Hierarki Warisan

concurrent_priority_queue

Persyaratan

Header: concurrent_priority_queue.h

Namespace: konkurensi

hapus

Menghapus semua elemen dalam prioritas bersamaan. Metode ini tidak aman konkurensi.

void clear();

Keterangan

clear tidak aman konkurensi. Anda harus memastikan bahwa tidak ada utas lain yang memanggil metode pada antrean prioritas bersamaan saat Anda memanggil metode ini. clear tidak membebaskan memori.

concurrent_priority_queue

Membuat antrean prioritas bersamaan.

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);

Parameter

_InputIterator
Jenis iterator input.

_Al
Kelas alokator untuk digunakan dengan objek ini.

_Init_capacity
Kapasitas concurrent_priority_queue awal objek.

_Mulai
Posisi elemen pertama dalam rentang elemen yang akan disalin.

_Akhir
Posisi elemen pertama di luar rentang elemen yang akan disalin.

_Src
Objek sumber concurrent_priority_queue untuk menyalin atau memindahkan elemen.

Keterangan

Semua konstruktor menyimpan objek _Al alokator dan menginisialisasi antrean prioritas.

Konstruktor pertama menentukan antrean prioritas awal kosong dan secara opsional menentukan alokator.

Konstruktor kedua menentukan antrean prioritas dengan kapasitas _Init_capacity awal dan secara opsional menentukan alokator.

Konstruktor ketiga menentukan nilai yang disediakan oleh rentang iterator [ _Begin, , _End) dan secara opsional menentukan alokator.

Konstruktor keempat dan kelima menentukan salinan antrean _Srcprioritas .

Konstruktor keenam dan ketujuh menentukan pemindahan antrean _Srcprioritas .

kosong

Menguji apakah antrean prioritas bersamaan kosong pada saat metode ini dipanggil. Metode ini aman konkurensi.

bool empty() const;

Tampilkan Nilai

true jika antrean prioritas kosong saat fungsi dipanggil, false jika tidak.

get_allocator

Mengembalikan salinan alokator yang digunakan untuk membuat antrean prioritas bersamaan. Metode ini aman konkurensi.

allocator_type get_allocator() const;

Tampilkan Nilai

Salinan alokator yang digunakan untuk membuat concurrent_priority_queue objek.

operator=

Menetapkan isi objek lain concurrent_priority_queue untuk objek ini. Metode ini tidak aman konkurensi.

concurrent_priority_queue& operator= (const concurrent_priority_queue& _Src);

concurrent_priority_queue& operator= (concurrent_priority_queue&& _Src);

Parameter

_Src
Objek sumber concurrent_priority_queue .

Tampilkan Nilai

Referensi ke objek ini concurrent_priority_queue .

push

Menambahkan elemen ke antrean prioritas bersamaan. Metode ini aman konkurensi.

void push(const value_type& _Elem);

void push(value_type&& _Elem);

Parameter

_Elem
Elemen yang akan ditambahkan ke antrean prioritas bersamaan.

size

Mengembalikan jumlah elemen dalam antrean prioritas bersamaan. Metode ini aman konkurensi.

size_type size() const;

Tampilkan Nilai

Jumlah elemen dalam objek ini concurrent_priority_queue .

Keterangan

Ukuran yang dikembalikan dijamin untuk menyertakan semua elemen yang ditambahkan oleh panggilan ke fungsi push. Namun, mungkin tidak mencerminkan hasil operasi bersamaan yang tertunda.

pertukaran

Menukar isi dua antrean prioritas bersamaan. Metode ini tidak aman konkurensi.

void swap(concurrent_priority_queue& _Queue);

Parameter

_Antrian
Objek concurrent_priority_queue untuk menukar konten dengan.

try_pop

Menghapus dan mengembalikan elemen prioritas tertinggi dari antrean jika antrean tidak kosong. Metode ini aman konkurensi.

bool try_pop(reference _Elem);

Parameter

_Elem
Referensi ke variabel yang akan diisi dengan elemen prioritas tertinggi, jika antrean tidak kosong.

Tampilkan Nilai

true jika nilai muncul, false jika tidak.

Baca juga

Namespace layanan konkurensi
Kontainer dan Objek Paralel