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_unordered_multiset adalah kontainer aman konkurensi yang mengontrol urutan dengan panjang yang bervariasi dari elemen jenis K. Urutan diwakili dengan cara yang memungkinkan penambahan aman konkurensi, akses elemen, akses iterator, dan operasi traversal iterator. Di sini, aman secara konkurensi berarti penunjuk atau pengulang selalu valid. Ini bukan jaminan inisialisasi elemen, atau urutan traversal tertentu.
Sintaks
template <typename K,
typename _Hasher = std::hash<K>,
typename key_equality = std::equal_to<K>,
typename _Allocator_type = std::allocator<K>>
class concurrent_unordered_multiset : public details::_Concurrent_hash<details::_Concurrent_unordered_set_traits<K, details::_Hash_compare<K, _Hasher, key_equality>, _Allocator_type, true>>;
Parameter
K
Jenis kunci.
_Hasher
Jenis objek fungsi hash. Argumen ini bersifat opsional dan nilai defaultnya adalah std::hash<K>.
key_equality
Jenis objek fungsi perbandingan kesetaraan. Argumen ini bersifat opsional dan nilai defaultnya adalah std::equal_to<K>.
_Allocator_type
Jenis yang mewakili objek alokator tersimpan yang merangkum detail tentang alokasi dan dealokasi memori untuk vektor konkuren. Argumen ini bersifat opsional dan nilai defaultnya adalah std::allocator<K>.
Anggota
Typedef Publik
| Nama | Deskripsi |
|---|---|
allocator_type |
Jenis alokator untuk mengelola penyimpanan. |
const_iterator |
Jenis iterator konstan untuk urutan terkontrol. |
const_local_iterator |
Jenis iterator keranjang konstan untuk urutan yang terkontrol. |
const_pointer |
Jenis penunjuk konstan ke elemen. |
const_reference |
Jenis referensi konstanta ke elemen. |
difference_type |
Jenis jarak yang ditandatangani antara dua elemen. |
hasher |
Jenis fungsi hash. |
iterator |
Jenis iterator untuk urutan yang dikontrol. |
key_equal |
Jenis fungsi perbandingan. |
key_type |
Jenis kunci pemesanan. |
local_iterator |
Jenis iterator wadah untuk urutan yang dikontrol. |
pointer |
Jenis penunjuk ke elemen. |
reference |
Jenis referensi ke elemen. |
size_type |
Jenis jarak tanpa tanda antara dua elemen. |
value_type |
Jenis elemen. |
Konstruktor Publik
| Nama | Deskripsi |
|---|---|
| concurrent_unordered_multiset | Kelebihan beban. Membangun multiset yang tidak diurutkan secara bersamaan. |
Metode Publik
| Nama | Deskripsi |
|---|---|
| hash_function | Mengembalikan objek fungsi hash tersimpan. |
| memasukkan | Kelebihan beban. Menambahkan elemen ke concurrent_unordered_multiset objek. |
| key_eq | Objek fungsi perbandingan kesetaraan yang tersimpan. |
| ganti | Menukar isi dua concurrent_unordered_multiset objek. Metode ini tidak aman konkurensi. |
| unsafe_erase | Kelebihan beban. Menghapus elemen dari concurrent_unordered_multiset pada posisi yang ditentukan. Metode ini tidak aman konkurensi. |
Operator Publik
| Nama | Deskripsi |
|---|---|
| operator= | Kelebihan beban. Menetapkan isi dari objek concurrent_unordered_multiset lain ke objek ini. Metode ini tidak aman konkurensi. |
Keterangan
Untuk informasi terperinci tentang kelas concurrent_unordered_multiset, lihat Paralel Kontainer dan Objek.
Hierarki Pewarisan
_Traits
_Concurrent_hash
concurrent_unordered_multiset
Persyaratan
Header: concurrent_unordered_set.h
Namespace: konkurensi
mulai
Mengembalikan iterator yang menunjuk ke elemen pertama dalam kontainer serentak. Metode ini aman untuk konkurensi.
iterator begin();
const_iterator begin() const;
Tampilkan Nilai
Iterator ke elemen pertama dalam kontainer bersamaan.
cbegin
Mengembalikan iterator const yang menunjuk ke elemen pertama dalam kontainer bersamaan. Metode ini aman untuk konkurensi.
const_iterator cbegin() const;
Tampilkan Nilai
Iterator const ke elemen pertama dalam kontainer bersamaan.
cend
Mengembalikan iterator const yang menunjuk ke lokasi yang mengikuti elemen terakhir dalam kontainer konkuren. Metode ini aman untuk konkurensi.
const_iterator cend() const;
Tampilkan Nilai
Iterator const ke lokasi yang menggantikan elemen terakhir dalam kontainer bersamaan.
bersihkan
Menghapus semua elemen dalam kontainer konkuren. Fungsi ini tidak aman konkurensi.
void clear();
himpunan_multi_tak_urut_beriringan
Membangun multiset yang tidak diurutkan secara bersamaan.
explicit concurrent_unordered_multiset(
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_multiset(
const allocator_type& _Allocator);
template <typename _Iterator>
concurrent_unordered_multiset(_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_multiset(
const concurrent_unordered_multiset& _Uset);
concurrent_unordered_multiset(
const concurrent_unordered_multiset& _Uset,
const allocator_type& _Allocator);
concurrent_unordered_multiset(
concurrent_unordered_multiset&& _Uset);
Parameter
_Iterator
Jenis dari iterator input.
_Number_of_buckets
Jumlah awal wadah untuk multiset yang tidak diurutkan ini.
_Hasher
Fungsi hash untuk multiset yang tidak diurutkan ini.
key_equality
Fungsi perbandingan kesetaraan untuk multiset yang tidak diurutkan ini.
_Pengalokasi
Alokator untuk multiset yang tidak diurutkan ini.
pertama
terakhir
_Uset
Objek sumber concurrent_unordered_multiset dari mana elemen dipindahkan.
Keterangan
Semua konstruktor menyimpan objek _Allocator alokator dan menginisialisasi multiset yang tidak diurutkan.
Konstruktor pertama menentukan multiset awal kosong dan secara eksplisit menentukan jumlah wadah, fungsi hash, fungsi kesetaraan, dan jenis alokator yang akan digunakan.
Konstruktor kedua menentukan alokator untuk multiset yang tidak diurutkan.
Konstruktor ketiga menentukan nilai yang disediakan oleh rentang iterator [ _Begin, _End).
Konstruktor keempat dan kelima menentukan salinan multiset tidak diurutkan yang bersamaan _Uset.
Konstruktor terakhir menentukan pemindahan multiset yang tidak diurutkan bersamaan _Uset.
jumlah
Menghitung jumlah elemen yang cocok dengan kunci tertentu. Fungsi ini aman konkurensi.
size_type count(const key_type& KVal) const;
Parameter
KVal
Kunci pencarian.
Tampilkan Nilai
Berapa kali kunci muncul dalam kontainer.
kosong
Menguji apakah tidak ada elemen yang hadir. Metode ini aman untuk konkurensi.
bool empty() const;
Tampilkan Nilai
true jika kontainer bersamaan kosong, false jika tidak.
Keterangan
Saat terjadi penyisipan bersamaan, apakah kontainer bersamaan kosong atau tidak dapat berubah segera setelah fungsi ini dipanggil, sebelum nilai pengembaliannya dibaca.
akhir
Mengembalikan iterator yang menunjuk ke lokasi setelah elemen terakhir dalam kontainer konkuren. Metode ini aman untuk konkurensi.
iterator end();
const_iterator end() const;
Tampilkan Nilai
Iterator ke lokasi yang menggantikan elemen terakhir dalam kontainer bersamaan.
equal_range
Menemukan rentang yang cocok dengan kunci tertentu. Fungsi ini aman konkurensi.
std::pair<iterator,
iterator> equal_range(
const key_type& KVal);
std::pair<const_iterator,
const_iterator> equal_range(
const key_type& KVal) const;
Parameter
KVal
Nilai kunci yang akan dicari.
Tampilkan Nilai
Pasangan di mana elemen pertama adalah iterator ke awal dan elemen kedua adalah iterator ke akhir rentang.
Keterangan
Dimungkinkan bagi penyisipan bersamaan untuk menyebabkan kunci tambahan dimasukkan setelah iterator awal dan sebelum iterator akhir.
cari
Menemukan elemen yang cocok dengan kunci tertentu. Fungsi ini aman konkurensi.
iterator find(const key_type& KVal);
const_iterator find(const key_type& KVal) const;
Parameter
KVal
Nilai kunci yang akan dicari.
Tampilkan Nilai
Iterator yang menunjuk ke lokasi elemen pertama yang cocok dengan kunci yang disediakan, atau iterator end() jika tidak ada elemen tersebut.
get_allocator
Mengembalikan objek alokator tersimpan untuk kontainer bersamaan ini. Metode ini aman untuk konkurensi.
allocator_type get_allocator() const;
Tampilkan Nilai
Objek alokator tersimpan untuk kontainer bersamaan ini.
fungsi hash
Mengembalikan objek fungsi hash tersimpan.
hasher hash_function() const;
Tampilkan Nilai
Objek fungsi hash yang disimpan.
memasukkan
Menambahkan elemen ke concurrent_unordered_multiset objek.
iterator 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>
iterator 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);
Parameter
_Iterator
Jenis iterator yang digunakan untuk penyisipan.
V
Jenis nilai yang disisipkan.
nilai
Nilai yang akan disisipkan.
_Di mana
Lokasi awal untuk mencari titik penyisipan.
pertama
Awal rentang yang ingin disisipkan.
terakhir
Akhir batas rentang yang akan disisipkan.
Tampilkan Nilai
Iterator yang menunjuk ke lokasi penyisipan.
Keterangan
Fungsi anggota pertama menyisipkan elemen value dalam urutan terkontrol, lalu mengembalikan iterator yang menunjuk elemen yang disisipkan.
Fungsi anggota kedua mengembalikan insert(value), menggunakan _Where sebagai tempat awal dalam urutan terkontrol untuk mencari titik penyisipan.
Fungsi anggota ketiga menyisipkan urutan nilai elemen dari rentang [ first, last).
Fungsi anggota terakhir berperilaku sama dengan dua fungsi pertama, kecuali value digunakan untuk membangun nilai yang dimasukkan.
key_eq
Objek fungsi perbandingan kesetaraan yang tersimpan.
key_equal key_eq() const;
Tampilkan Nilai
Objek fungsi perbandingan kesetaraan yang tersimpan.
faktor muatan
Menghitung dan mengembalikan faktor beban kontainer saat ini. Faktor beban adalah jumlah elemen dalam kontainer yang dibagi dengan jumlah wadah.
float load_factor() const;
Tampilkan Nilai
Faktor beban untuk kontainer.
faktor_beban_maksimal
Mendapatkan atau mengatur faktor beban maksimum kontainer. Faktor beban maksimum adalah jumlah elemen terbanyak yang bisa ada di dalam satu wadah sebelum kontainer memperbesar tabel internalnya.
float max_load_factor() const;
void max_load_factor(float _Newmax);
Parameter
_Newmax
Tampilkan Nilai
Fungsi anggota pertama mengembalikan faktor beban maksimum yang disimpan. Fungsi anggota kedua tidak mengembalikan nilai tetapi melemparkan pengecualian out_of_range jika faktor beban yang disediakan tidak valid.
ukuran_maksimum
Mengembalikan ukuran maksimum kontainer bersamaan, yang ditentukan oleh alokator. Metode ini aman untuk konkurensi.
size_type max_size() const;
Tampilkan Nilai
Jumlah maksimum elemen yang dapat dimasukkan ke dalam kontainer bersamaan ini.
Keterangan
Nilai terikat atas ini sebenarnya mungkin lebih tinggi dari apa yang sebenarnya dapat ditahan oleh kontainer.
operator=
Menetapkan isi dari objek concurrent_unordered_multiset lain ke objek ini. Metode ini tidak aman konkurensi.
concurrent_unordered_multiset& operator= (const concurrent_unordered_multiset& _Uset);
concurrent_unordered_multiset& operator= (concurrent_unordered_multiset&& _Uset);
Parameter
_Uset
Objek sumber concurrent_unordered_multiset .
Tampilkan Nilai
Referensi ke objek ini concurrent_unordered_multiset .
Keterangan
Setelah menghapus elemen yang ada dalam multiset yang tidak diurutkan bersamaan, operator= salin atau pindahkan konten _Uset ke dalam multiset yang tidak diurutkan bersamaan.
rekalkulasi
Membangun kembali tabel hash.
void rehash(size_type _Buckets);
Parameter
_Bucket
Jumlah wadah yang diinginkan.
Keterangan
Fungsi anggota mengubah jumlah wadah menjadi setidaknya _Buckets dan membangun kembali tabel hash sesuai kebutuhan. Jumlah ember harus berupa kekuatan 2. Jika bukan pangkat 2, itu akan dibulatkan ke pangkat 2 terbesar berikutnya.
Ini melemparkan pengecualian out_of_range jika jumlah wadah tidak valid (baik 0 atau lebih besar dari jumlah maksimum wadah).
ukuran
Mengembalikan jumlah elemen dalam kontainer bersamaan ini. Metode ini aman untuk konkurensi.
size_type size() const;
Tampilkan Nilai
Jumlah item dalam kontainer.
Keterangan
Dalam situasi penyisipan bersamaan, jumlah elemen dalam kontainer bersamaan dapat berubah segera setelah memanggil fungsi ini, sebelum nilai pengembalian bahkan dibaca.
tukar
Menukar isi dua concurrent_unordered_multiset objek. Metode ini tidak aman konkurensi.
void swap(concurrent_unordered_multiset& _Uset);
Parameter
_Uset
Objek concurrent_unordered_multiset yang akan ditukar.
unsafe_begin
Mengembalikan iterator ke elemen pertama dalam kontainer ini untuk wadah tertentu.
local_iterator unsafe_begin(size_type _Bucket);
const_local_iterator unsafe_begin(size_type _Bucket) const;
Parameter
_Bucket
Indeks wadah.
Tampilkan Nilai
Iterator yang menunjuk ke awal wadah.
unsafe_bucket
Mengembalikan indeks bucket yang dihubungkan oleh kunci tertentu di dalam wadah ini.
size_type unsafe_bucket(const key_type& KVal) const;
Parameter
KVal
Kunci elemen yang sedang dicari.
Tampilkan Nilai
Indeks wadah untuk kunci dalam kontainer ini.
jumlah_keranjang_tidak_aman
Mengembalikan jumlah wadah saat ini dalam kontainer ini.
size_type unsafe_bucket_count() const;
Tampilkan Nilai
Jumlah wadah saat ini dalam kontainer ini.
ukuran_bucket_tidak_aman (unsafe_bucket_size)
Mengembalikan jumlah item dalam wadah tertentu dari kontainer ini.
size_type unsafe_bucket_size(size_type _Bucket);
Parameter
_Bucket
Wadah yang akan dicari.
Tampilkan Nilai
Jumlah wadah saat ini dalam kontainer ini.
unsafe_cbegin
Mengembalikan iterator ke elemen pertama dalam kontainer ini untuk wadah tertentu.
const_local_iterator unsafe_cbegin(size_type _Bucket) const;
Parameter
_Bucket
Indeks wadah.
Tampilkan Nilai
Iterator yang menunjuk ke awal wadah.
unsafe_cend
Mengembalikan iterator ke lokasi yang menggantikan elemen terakhir dalam wadah tertentu.
const_local_iterator unsafe_cend(size_type _Bucket) const;
Parameter
_Bucket
Indeks wadah.
Tampilkan Nilai
Iterator yang menunjuk ke awal wadah.
akhir_tidak_aman
Mengembalikan iterator ke elemen terakhir dalam kontainer ini untuk wadah tertentu.
local_iterator unsafe_end(size_type _Bucket);
const_local_iterator unsafe_end(size_type _Bucket) const;
Parameter
_Bucket
Indeks wadah.
Tampilkan Nilai
Iterator yang menunjuk ke akhir wadah.
penghapusan_tidak_aman
Menghapus elemen dari concurrent_unordered_multiset pada posisi yang ditentukan. Metode ini tidak aman konkurensi.
iterator unsafe_erase(
const_iterator _Where);
iterator unsafe_erase(
const_iterator first,
const_iterator last);
size_type unsafe_erase(
const key_type& KVal);
Parameter
_Di mana
Posisi iterator untuk menghapus dari.
pertama
terakhir
KVal
Nilai kunci untuk menghapus.
Tampilkan Nilai
Dua fungsi anggota pertama mengembalikan iterator yang menunjuk elemen pertama yang tersisa di luar elemen apa pun yang dihapus, atau end() jika tidak ada elemen tersebut. Fungsi anggota ketiga mengembalikan jumlah elemen yang dihapusnya.
Keterangan
Fungsi anggota pertama menghapus elemen yang ditunjuk oleh _Where. Fungsi anggota kedua menghapus elemen dalam rentang [ _Begin, _End).
Fungsi anggota ketiga menghapus elemen dalam rentang yang dibatasi oleh equal_range(KVal).
unsafe_max_bucket_count (jumlah_bucket_maksimum_tidak_aman)
Mengembalikan jumlah maksimum wadah dalam kontainer ini.
size_type unsafe_max_bucket_count() const;
Tampilkan Nilai
Jumlah maksimum wadah dalam kontainer ini.