Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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>>
class concurrent_priority_queue;
Parameter
T
Jenis data elemen yang akan disimpan dalam antrean prioritas.
_Membandingkan
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 mencakup detail mengenai alokasi dan dealokasi 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 konkuren. |
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 |
|---|---|
| bersihkan | 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. |
| push | Kelebihan beban. Menambahkan elemen ke antrean prioritas simultan. Metode ini aman untuk penggunaan bersamaan. |
| ukuran | Mengembalikan jumlah elemen dalam antrian prioritas konkuren. Metode ini aman terhadap konkurensi. |
| ganti | 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 terhadap konkurensi. |
Operator Publik
| Nama | Deskripsi |
|---|---|
| operator= | Kelebihan beban. Menetapkan isi objek concurrent_priority_queue lain ke objek ini. Metode ini tidak aman konkurensi. |
Keterangan
Untuk informasi terperinci tentang kelas concurrent_priority_queue, lihat Kontainer dan Objek Paralel.
Hierarki Pewarisan
concurrent_priority_queue
Persyaratan
Header: concurrent_priority_queue.h
Namespace: konkurensi
bersihkan
Menghapus semua elemen dalam prioritas bersamaan. Metode ini tidak aman konkurensi.
void clear();
Keterangan
clear tidak aman untuk 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 masukan.
_Al
Kelas alokator yang akan digunakan dengan objek ini.
_Init_capacity
Kapasitas awal concurrent_priority_queue 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 prioritas _Src.
Konstruktor keenam dan ketujuh menentukan pemindahan antrean prioritas _Src.
kosong
Menguji apakah antrean prioritas bersamaan kosong pada saat metode ini dipanggil. Metode ini aman terhadap konkurensi.
bool empty() const;
Tampilkan Nilai
true jika antrean prioritas kosong pada saat fungsi dipanggil, false jika tidak.
get_allocator
Mengembalikan salinan alokator yang digunakan untuk membuat antrean prioritas bersamaan. Metode ini aman terhadap konkurensi.
allocator_type get_allocator() const;
Tampilkan Nilai
Salinan alokator yang digunakan untuk membuat objek concurrent_priority_queue.
operator=
Menetapkan isi dari objek concurrent_priority_queue lain ke 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 .
pendorongan
Menambahkan elemen ke antrean prioritas simultan. Metode ini aman terhadap konkurensi.
void push(const value_type& _Elem);
void push(value_type&& _Elem);
Parameter
_Elem
Elemen yang akan ditambahkan ke antrian prioritas bersamaan.
ukuran
Mengembalikan jumlah elemen dalam antrian prioritas konkuren. Metode ini aman terhadap 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.
tukar
Menukar isi dua antrean prioritas bersamaan. Metode ini tidak aman konkurensi.
void swap(concurrent_priority_queue& _Queue);
Parameter
_Antre
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 terhadap 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.