Bagikan melalui


Kelas concurrent_unordered_multimap

Kelas concurrent_unordered_multimap adalah kontainer konkurensi-aman yang mengontrol urutan panjang yang bervariasi dari elemen jenis std::pair<const K, _Element_type>. Urutan diwakili dengan cara yang memungkinkan penambalan aman konkurensi, akses elemen, akses iterator, dan operasi traversal iterator. Di sini, konkurensi-aman berarti pointer atau iterator selalu valid. Ini bukan jaminan inisialisasi elemen, atau urutan traversal tertentu.

Sintaks

template <typename K,
    typename _Element_type,
    typename _Hasher = std::hash<K>,
    typename key_equality = std::equal_to<K>,
    typename _Allocator_type = std::allocator<std::pair<const K, _Element_type>>>
class concurrent_unordered_multimap : public details::_Concurrent_hash<details::_Concurrent_unordered_map_traits<K, _Element_type, details::_Hash_compare<K, _Hasher, key_equality>, _Allocator_type, true>>;

Parameter

K
Jenis kunci.

_Element_type
Jenis yang dipetakan.

_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 alokasi memori untuk vektor bersamaan. Argumen ini bersifat opsional dan nilai defaultnya adalah std::allocator<std::pair<K, _Element_type>>.

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 wadah konstan untuk urutan yang dikontrol.
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.
mapped_type Jenis nilai yang dipetakan yang terkait dengan setiap kunci.
pointer Jenis penunjuk ke elemen.
reference Jenis referensi ke elemen.
size_type Jenis jarak yang tidak ditandatangani antara dua elemen.
value_type Jenis elemen.

Konstruktor Publik

Nama Deskripsi
concurrent_unordered_multimap Kelebihan beban. Membangun multimap bersamaan yang tidak diurutkan.

Metode Publik

Nama Deskripsi
hash_function Mengembalikan objek fungsi hash tersimpan.
memasukkan Kelebihan beban. Menambahkan elemen ke concurrent_unordered_multimap objek.
key_eq Mengembalikan objek fungsi perbandingan kesetaraan tersimpan.
tukar Menukar isi dua concurrent_unordered_multimap objek. Metode ini tidak aman konkurensi.
unsafe_erase Kelebihan beban. Menghapus elemen dari concurrent_unordered_multimap pada posisi yang ditentukan. Metode ini tidak aman konkurensi.

Operator Publik

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

Keterangan

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

Hierarki Warisan

_Traits

_Concurrent_hash

concurrent_unordered_multimap

Persyaratan

Header: concurrent_unordered_map.h

Namespace: konkurensi

mulai

Mengembalikan iterator yang menunjuk ke elemen pertama dalam kontainer bersamaan. Metode ini aman 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 konkurensi.

const_iterator cbegin() const;

Tampilkan Nilai

Iterator const ke elemen pertama dalam kontainer bersamaan.

cend

Mengembalikan iterator const yang menunjuk ke lokasi yang menggantikan elemen terakhir dalam kontainer bersamaan. Metode ini aman konkurensi.

const_iterator cend() const;

Tampilkan Nilai

Iterator const ke lokasi yang menggantikan elemen terakhir dalam kontainer bersamaan.

hapus

Menghapus semua elemen dalam kontainer bersamaan. Fungsi ini tidak aman konkurensi.

void clear();

concurrent_unordered_multimap

Membangun multimap bersamaan yang tidak diurutkan.

explicit concurrent_unordered_multimap(
    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_multimap(
    const allocator_type& _Allocator);

template <typename _Iterator>
concurrent_unordered_multimap(_Iterator _Begin,
    _Iterator _End,
    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_multimap(
    const concurrent_unordered_multimap& _Umap);

concurrent_unordered_multimap(
    const concurrent_unordered_multimap& _Umap,
    const allocator_type& _Allocator);

concurrent_unordered_multimap(
    concurrent_unordered_multimap&& _Umap);

Parameter

_Iterator
Jenis iterator input.

_Number_of_buckets
Jumlah awal wadah untuk multimap yang tidak diurutkan ini.

_Hasher
Fungsi hash untuk multimap yang tidak diurutkan ini.

key_equality
Fungsi perbandingan kesetaraan untuk multimap yang tidak diurutkan ini.

_Pengalokasi
Alokator untuk multimap yang tidak diurutkan ini.

_Mulai
Posisi elemen pertama dalam rentang elemen yang akan disalin.

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

_Umap
Objek sumber concurrent_unordered_multimap untuk menyalin elemen.

Keterangan

Semua konstruktor menyimpan objek _Allocator alokator dan menginisialisasi multimap yang tidak diurutkan.

Konstruktor pertama menentukan multimap awal kosong dan secara eksplisit menentukan jumlah wadah, fungsi hash, fungsi kesetaraan, dan jenis alokator yang akan digunakan.

Konstruktor kedua menentukan alokator untuk multimap yang tidak diurutkan.

Konstruktor ketiga menentukan nilai yang disediakan oleh rentang iterator [ _Begin, _End).

Konstruktor keempat dan kelima menentukan salinan multimap _Umapbersamaan yang tidak diurutkan .

Konstruktor terakhir menentukan pemindahan multimap _Umapbersamaan yang tidak diurutkan .

jumlah

Menghitung jumlah elemen yang cocok dengan kunci tertentu. Fungsi ini aman konkurensi.

size_type count(const key_type& KVal) const;

Parameter

KVal
Kunci untuk dicari.

Tampilkan Nilai

Berapa kali kunci muncul dalam kontainer.

kosong

Menguji apakah tidak ada elemen yang ada. Metode ini aman konkurensi.

bool empty() const;

Tampilkan Nilai

true jika kontainer bersamaan kosong, false jika tidak.

Keterangan

Di hadapan sisipan bersamaan, apakah kontainer bersamaan kosong atau tidak dapat berubah segera setelah memanggil fungsi ini, sebelum nilai pengembalian bahkan dibaca.

akhir

Mengembalikan iterator yang menunjuk ke lokasi yang menggantikan elemen terakhir dalam kontainer bersamaan. Metode ini aman 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 untuk sisipan bersamaan untuk menyebabkan kunci tambahan dimasukkan setelah iterator mulai 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 konkurensi.

allocator_type get_allocator() const;

Tampilkan Nilai

Objek alokator tersimpan untuk kontainer bersamaan ini.

hash_function

Mengembalikan objek fungsi hash tersimpan.

hasher hash_function() const;

Tampilkan Nilai

Objek fungsi hash yang disimpan.

memasukkan

Menambahkan elemen ke concurrent_unordered_multimap 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 ke dalam peta.

nilai
Nilai yang akan disisipkan.

_Mana
Lokasi awal untuk mencari titik penyisipan.

pertama
Awal rentang yang akan disisipkan.

terakhir
Akhir 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).

Dua fungsi anggota terakhir berperilaku sama dengan dua pertama, kecuali yang digunakan untuk membangun nilai yang value disisipkan.

key_eq

Mengembalikan objek fungsi perbandingan kesetaraan tersimpan.

key_equal key_eq() const;

Tampilkan Nilai

Objek fungsi perbandingan kesetaraan tersimpan.

load_factor

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.

max_load_factor

Mendapatkan atau mengatur faktor beban maksimum kontainer. Faktor beban maksimum adalah jumlah elemen terbesar daripada yang dapat berada di wadah apa pun sebelum kontainer menumbuhkan 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 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 objek lain concurrent_unordered_multimap untuk objek ini. Metode ini tidak aman konkurensi.

concurrent_unordered_multimap& operator= (const concurrent_unordered_multimap& _Umap);

concurrent_unordered_multimap& operator= (concurrent_unordered_multimap&& _Umap);

Parameter

_Umap
Objek sumber concurrent_unordered_multimap .

Tampilkan Nilai

Referensi ke objek ini concurrent_unordered_multimap .

Keterangan

Setelah menghapus elemen yang ada dalam multimap bersamaan yang tidak diurutkan, operator= salin atau pindahkan konten _Umap ke dalam multimap yang tidak berurut bersamaan.

rehash

Membangun kembali tabel hash.

void rehash(size_type _Buckets);

Parameter

_Ember
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 kekuatan 2, itu akan dibulatkan ke kekuatan terbesar berikutnya 2.

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 konkurensi.

size_type size() const;

Tampilkan Nilai

Jumlah item dalam kontainer.

Keterangan

Di hadapan sisipan bersamaan, jumlah elemen dalam kontainer bersamaan dapat berubah segera setelah memanggil fungsi ini, sebelum nilai pengembalian bahkan dibaca.

pertukaran

Menukar isi dua concurrent_unordered_multimap objek. Metode ini tidak aman konkurensi.

void swap(concurrent_unordered_multimap& _Umap);

Parameter

_Umap
Objek concurrent_unordered_multimap 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

_Ember
Indeks wadah.

Tampilkan Nilai

Iterator yang menunjuk ke awal wadah.

unsafe_bucket

Mengembalikan indeks wadah yang dipetakan kunci tertentu dalam kontainer 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.

unsafe_bucket_count

Mengembalikan jumlah wadah saat ini dalam kontainer ini.

size_type unsafe_bucket_count() const;

Tampilkan Nilai

Jumlah wadah saat ini dalam kontainer ini.

unsafe_bucket_size

Mengembalikan jumlah item dalam wadah tertentu dari kontainer ini.

size_type unsafe_bucket_size(size_type _Bucket);

Parameter

_Ember
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

_Ember
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

_Ember
Indeks wadah.

Tampilkan Nilai

Iterator yang menunjuk ke awal wadah.

unsafe_end

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

_Ember
Indeks wadah.

Tampilkan Nilai

Iterator yang menunjuk ke akhir wadah.

unsafe_erase

Menghapus elemen dari concurrent_unordered_multimap pada posisi yang ditentukan. Metode ini tidak aman konkurensi.

iterator unsafe_erase(
    const_iterator _Where);

size_type unsafe_erase(
    const key_type& KVal);

iterator unsafe_erase(
    const_iterator first,
    const_iterator last);

Parameter

_Mana
Posisi iterator untuk menghapus dari.

KVal
Nilai kunci untuk menghapus.

pertama
terakhir
Iterator.

Tampilkan Nilai

Dua fungsi anggota pertama mengembalikan iterator yang menunjuk elemen pertama yang tersisa di luar elemen apa pun yang dihapus, atau concurrent_unordered_multimap::end() jika tidak ada elemen tersebut. Fungsi anggota ketiga mengembalikan jumlah elemen yang dihapusnya.

Keterangan

Fungsi anggota pertama menghapus elemen urutan terkontrol yang diacu oleh _Where. Fungsi anggota kedua menghapus elemen dalam rentang [ _Begin, _End).

Fungsi anggota ketiga menghapus elemen dalam rentang yang dibatasi oleh concurrent_unordered_multimap::equal_range(KVal).

unsafe_max_bucket_count

Mengembalikan jumlah maksimum wadah dalam kontainer ini.

size_type unsafe_max_bucket_count() const;

Tampilkan Nilai

Jumlah maksimum wadah dalam kontainer ini.

Lihat juga

Namespace layanan konkurensi
Kontainer dan Objek Paralel