Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A concurrent_unordered_multiset osztály egy egyidejűségbiztos tároló, amely a K típusú elemek változó hosszúságú sorozatát vezérli. A szekvencia olyan módon jelenik meg, amely lehetővé teszi az egyidejűségmentes hozzáfűzést, az elemhozzáférést, az iterátor-hozzáférést és az iterátor-bejárási műveleteket. Itt az egyidejűség-biztonságos érték azt jelenti, hogy a mutató vagy az iterátor mindig érvényes. Ez nem garantálja az elemek inicializálását vagy egy adott bejárási sorrendet.
Szintaxis
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>>;
Paraméterek
K
A kulcs típusa.
_Hasher
A kivonatfüggvény objektumtípusa. Ez az argumentum nem kötelező, és az alapértelmezett érték std::hash<K>.
key_equality
Az egyenlőségi összehasonlító függvény objektumtípusa. Ez az argumentum nem kötelező, és az alapértelmezett érték std::equal_to<K>.
_Allocator_type
Az a típus, amely a tárolt allokátorobjektumot jelöli, amely az egyidejű vektor memóriafoglalásával és felszabadítással kapcsolatos részleteket foglal magában. Ez az argumentum nem kötelező, és az alapértelmezett érték std::allocator<K>.
Tagok
Nyilvános typedefs
| Név | Leírás |
|---|---|
allocator_type |
A tárterület kezelésére szolgáló kiosztó típusa. |
const_iterator |
A szabályozott sorozat állandó iterátorának típusa. |
const_local_iterator |
A konstans gyűjtő iterátorának típusa a szabályozott sorozathoz. |
const_pointer |
Az elemre mutató állandó mutató típusa. |
const_reference |
Az elemre mutató állandó hivatkozás típusa. |
difference_type |
A két elem közötti aláírt távolság típusa. |
hasher |
A kivonatfüggvény típusa. |
iterator |
A szabályozott sorozat iterátorának típusa. |
key_equal |
Az összehasonlító függvény típusa. |
key_type |
A rendelési kulcs típusa. |
local_iterator |
A vezérelt sorozat gyűjtő iterátorának típusa. |
pointer |
Az elemhez mutató mutató típusa. |
reference |
Az elemre mutató hivatkozás típusa. |
size_type |
A két elem közötti aláíratlan távolság típusa. |
value_type |
Az elem típusa. |
Nyilvános konstruktorok
| Név | Leírás |
|---|---|
| concurrent_unordered_multiset | Túlterhelt. Egyidejű, rendezetlen többhalmazt hoz létre. |
Nyilvános metódusok
| Név | Leírás |
|---|---|
| hash_function | A tárolt kivonatfüggvény-objektumot adja vissza. |
| beszúrása | Túlterhelt. Elemeket ad hozzá a concurrent_unordered_multiset objektumhoz. |
| key_eq | A tárolt egyenlőség-összehasonlító függvény objektuma. |
| felcserélési | Két concurrent_unordered_multiset objektum tartalmának felcserélése. Ez a módszer nem egyidejűségbiztos. |
| unsafe_erase | Túlterhelt. Eltávolítja az elemeket a concurrent_unordered_multiset a megadott pozíciókban. Ez a módszer nem egyidejűségbiztos. |
Nyilvános operátorok
| Név | Leírás |
|---|---|
| operátor= | Túlterhelt. Egy másik concurrent_unordered_multiset objektum tartalmát rendeli hozzá ehhez. Ez a módszer nem egyidejűségbiztos. |
Megjegyzések
A concurrent_unordered_multiset osztályról további információt Párhuzamos tárolók és objektumokcímű témakörben talál.
Öröklési hierarchia
_Traits
_Concurrent_hash
concurrent_unordered_multiset
Követelmények
fejléc: concurrent_unordered_set.h
névtér: egyidejűség
kezdődik
Egy iterátort ad vissza, amely az egyidejű tároló első elemére mutat. Ez a módszer az egyidejűség biztonságos.
iterator begin();
const_iterator begin() const;
Visszaadott érték
Az egyidejű tároló első elemének iterátora.
cbegin
Egy konstans iterátort ad vissza, amely az egyidejű tároló első elemére mutat. Ez a módszer az egyidejűség biztonságos.
const_iterator cbegin() const;
Visszaadott érték
Konstans iterátor az egyidejű tároló első eleméhez.
cend
Egy konstans iterátort ad vissza, amely az egyidejű tároló utolsó elemét követő helyre mutat. Ez a módszer az egyidejűség biztonságos.
const_iterator cend() const;
Visszaadott érték
Egy konstans iterátor az egyidejű tároló utolsó elemét követő helyre.
világos
Törli az egyidejű tároló összes elemét. Ez a függvény nem biztonságos egyidejűség.
void clear();
concurrent_unordered_multiset
Egyidejű, rendezetlen többhalmazt hoz létre.
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);
Paraméterek
_Iterator
A bemeneti iterátor típusa.
_Number_of_buckets
A rendezetlen többhalmazhoz tartozó gyűjtők kezdeti száma.
_Hasher
A rendezetlen többhalmaz kivonatfüggvénye.
key_equality
A rendezetlen többhalmaz egyenlőség-összehasonlító függvénye.
_Címfoglaló
A rendezetlen többkészlet kiosztója.
első
utolsó
_Uset
A forrás concurrent_unordered_multiset objektum, amelyből elemeket helyezhet át.
Megjegyzések
Minden konstruktor tárol egy allokátorobjektumot _Allocator, és inicializálja a rendezetlen többhalmazt.
Az első konstruktor egy üres kezdeti többkészletet határoz meg, és explicit módon megadja a használandó gyűjtők, kivonatfüggvények, egyenlőségfüggvények és kiosztótípus számát.
A második konstruktor egy allokátort ad meg a rendezetlen többhalmazhoz.
A harmadik konstruktor az iterátortartomány által megadott értékeket adja meg [ _Begin, _End).
A negyedik és ötödik konstruktorok az egyidejűleg nem rendezett többhalmazos _Usetegy példányát adják meg.
Az utolsó konstruktor az egyidejűleg rendezetlen többhalmazos _Usetáthelyezését adja meg.
gróf
Megszámolja a megadott kulcsnak megfelelő elemek számát. Ez a függvény az egyidejűség biztonságos.
size_type count(const key_type& KVal) const;
Paraméterek
KVal
A keresendő kulcs.
Visszaadott érték
A kulcs hányszor jelenik meg a tárolóban.
üres
Ellenőrzi, hogy nincsenek-e elemek. Ez a módszer az egyidejűség biztonságos.
bool empty() const;
Visszaadott érték
true, ha az egyidejű tároló üres, false ellenkező esetben.
Megjegyzések
Egyidejű beszúrások esetén, hogy az egyidejű tároló üres-e, a függvény meghívása után azonnal megváltozhat, mielőtt a visszatérési érték beolvasható.
vég
Egy olyan iterátort ad vissza, amely az egyidejű tároló utolsó elemét követő helyre mutat. Ez a módszer az egyidejűség biztonságos.
iterator end();
const_iterator end() const;
Visszaadott érték
Az egyidejű tároló utolsó elemét követő iterátor.
equal_range
Megkeres egy megadott kulccsal egyező tartományt. Ez a függvény az egyidejűség biztonságos.
std::pair<iterator,
iterator> equal_range(
const key_type& KVal);
std::pair<const_iterator,
const_iterator> equal_range(
const key_type& KVal) const;
Paraméterek
KVal
A keresendő kulcsérték.
Visszaadott érték
Egy pár, ahol az első elem az elejétől egy iterátor, a második elem pedig egy iterátor a tartomány végéig.
Megjegyzések
Lehetséges, hogy az egyidejű beszúrások további kulcsokat is beszúrnak a kezdő iterátor és a záró iterátor előtt.
talál
Megkeres egy adott kulccsal egyező elemet. Ez a függvény az egyidejűség biztonságos.
iterator find(const key_type& KVal);
const_iterator find(const key_type& KVal) const;
Paraméterek
KVal
A keresendő kulcsérték.
Visszaadott érték
Egy iterátor, amely a megadott kulcsnak megfelelő első elem helyére mutat, vagy az iterátor end(), ha nincs ilyen elem.
get_allocator
Az egyidejű tároló tárolt kiosztóobjektumát adja vissza. Ez a módszer az egyidejűség biztonságos.
allocator_type get_allocator() const;
Visszaadott érték
Az egyidejű tároló tárolt kiosztóobjektuma.
hash_function
A tárolt kivonatfüggvény-objektumot adja vissza.
hasher hash_function() const;
Visszaadott érték
A tárolt kivonatfüggvény objektuma.
beilleszt
Elemeket ad hozzá a concurrent_unordered_multiset objektumhoz.
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);
Paraméterek
_Iterator
A beszúráshoz használt iterátor típusa.
V
A beszúrt érték típusa.
érték
A beszúrandó érték.
_Hol
A beszúrási pont keresésének kezdő helye.
első
A beszúrni kívánt tartomány kezdete.
utolsó
A beszúrni kívánt tartomány vége.
Visszaadott érték
A beszúrási helyre mutató iterátor.
Megjegyzések
Az első tagfüggvény beszúrja a value elemet a szabályozott sorrendbe, majd visszaadja a beszúrt elemet meghatározó iterátort.
A második tagfüggvény a insert(value) függvényt adja vissza, amely kezdőhelyként szolgál _Where a szabályozott sorrendben a beszúrási pont kereséséhez.
A harmadik tagfüggvény beszúrja az elemértékek sorozatát az [first, last) tartományból.
Az utolsó két tagfüggvény ugyanúgy viselkedik, mint az első kettő, kivéve, hogy value a beszúrt érték létrehozásához használatos.
key_eq
A tárolt egyenlőség-összehasonlító függvény objektuma.
key_equal key_eq() const;
Visszaadott érték
A tárolt egyenlőség-összehasonlító függvény objektuma.
load_factor
Kiszámítja és visszaadja a tároló aktuális terhelési tényezőit. A terhelési tényező a tároló elemeinek száma a gyűjtők számával osztva.
float load_factor() const;
Visszaadott érték
A tároló terhelési tényezője.
max_load_factor
Lekéri vagy beállítja a tároló maximális terhelési tényezőjének értékét. A maximális terhelési tényező az elemek legnagyobb száma, mint bármely gyűjtőben, mielőtt a tároló növeli a belső táblát.
float max_load_factor() const;
void max_load_factor(float _Newmax);
Paraméterek
_Newmax
Visszaadott érték
Az első tagfüggvény a tárolt maximális terhelési tényezőt adja vissza. A második tagfüggvény nem ad vissza értéket, hanem out_of_range kivételt ad vissza, ha a megadott terhelési tényező érvénytelen.
maximális méret
Az egyidejű tároló maximális méretét adja vissza, amelyet az elosztó határoz meg. Ez a módszer az egyidejűség biztonságos.
size_type max_size() const;
Visszaadott érték
Az egyidejű tárolóba beszúrható elemek maximális száma.
Megjegyzések
Ez a felső határérték valójában magasabb lehet, mint amit a tároló ténylegesen tárolhat.
operátor=
Egy másik concurrent_unordered_multiset objektum tartalmát rendeli hozzá ehhez. Ez a módszer nem egyidejűségbiztos.
concurrent_unordered_multiset& operator= (const concurrent_unordered_multiset& _Uset);
concurrent_unordered_multiset& operator= (concurrent_unordered_multiset&& _Uset);
Paraméterek
_Uset
A forrás concurrent_unordered_multiset objektum.
Visszaadott érték
Hivatkozás erre a concurrent_unordered_multiset objektumra.
Megjegyzések
Az egyidejűleg rendezetlen többhalmaz meglévő elemeinek törlése után operator= másolhatja vagy áthelyezheti a _Uset tartalmát az egyidejű rendezetlen többhalmazba.
Felmelegít
Újraépíti a kivonattáblát.
void rehash(size_type _Buckets);
Paraméterek
_Vödör
A gyűjtők kívánt száma.
Megjegyzések
A tagfüggvény módosítja a legalább _Buckets gyűjtők számát, és szükség szerint újraépíti a kivonattáblát. A gyűjtők számának 2-esnek kell lennie. Ha nem 2-es hatvány, akkor a következő legnagyobb 2-es teljesítményre lesz kerekítve.
Kivételt out_of_range, ha a gyűjtők száma érvénytelen (vagy 0 vagy nagyobb, mint a gyűjtők maximális száma).
méret
Az egyidejű tároló elemeinek számát adja vissza. Ez a módszer az egyidejűség biztonságos.
size_type size() const;
Visszaadott érték
A tárolóban lévő elemek száma.
Megjegyzések
Egyidejű beszúrások esetén az egyidejű tároló elemeinek száma a függvény meghívása után azonnal megváltozhat, mielőtt a visszatérési érték beolvasható.
elcserél
Két concurrent_unordered_multiset objektum tartalmának felcserélése. Ez a módszer nem egyidejűségbiztos.
void swap(concurrent_unordered_multiset& _Uset);
Paraméterek
_Uset
A concurrent_unordered_multiset objektum, amellyel felcserélhet.
unsafe_begin
Egy iterátort ad vissza a tároló első eleméhez egy adott gyűjtőhöz.
local_iterator unsafe_begin(size_type _Bucket);
const_local_iterator unsafe_begin(size_type _Bucket) const;
Paraméterek
_Vödör
A gyűjtő indexe.
Visszaadott érték
A gyűjtő elejére mutató iterátor.
unsafe_bucket
Visszaadja azt a gyűjtőindexet, amelyet egy adott kulcs leképz ebben a tárolóban.
size_type unsafe_bucket(const key_type& KVal) const;
Paraméterek
KVal
A keresett elemkulcs.
Visszaadott érték
A tároló kulcsának gyűjtőindexe.
unsafe_bucket_count
A tárolóban lévő gyűjtők aktuális számát adja vissza.
size_type unsafe_bucket_count() const;
Visszaadott érték
A tárolóban lévő gyűjtők aktuális száma.
unsafe_bucket_size
A tároló egy adott gyűjtőjében lévő elemek számát adja vissza.
size_type unsafe_bucket_size(size_type _Bucket);
Paraméterek
_Vödör
A keresendő gyűjtő.
Visszaadott érték
A tárolóban lévő gyűjtők aktuális száma.
unsafe_cbegin
Egy iterátort ad vissza a tároló első eleméhez egy adott gyűjtőhöz.
const_local_iterator unsafe_cbegin(size_type _Bucket) const;
Paraméterek
_Vödör
A gyűjtő indexe.
Visszaadott érték
A gyűjtő elejére mutató iterátor.
unsafe_cend
Egy iterátort ad vissza egy adott gyűjtő utolsó elemét követő helyre.
const_local_iterator unsafe_cend(size_type _Bucket) const;
Paraméterek
_Vödör
A gyűjtő indexe.
Visszaadott érték
A gyűjtő elejére mutató iterátor.
unsafe_end
Egy iterátort ad vissza a tároló utolsó eleméhez egy adott gyűjtőhöz.
local_iterator unsafe_end(size_type _Bucket);
const_local_iterator unsafe_end(size_type _Bucket) const;
Paraméterek
_Vödör
A gyűjtő indexe.
Visszaadott érték
Egy iterátor, amely a gyűjtő végére mutat.
unsafe_erase
Eltávolítja az elemeket a concurrent_unordered_multiset a megadott pozíciókban. Ez a módszer nem egyidejűségbiztos.
iterator unsafe_erase(
const_iterator _Where);
iterator unsafe_erase(
const_iterator first,
const_iterator last);
size_type unsafe_erase(
const key_type& KVal);
Paraméterek
_Hol
A törölni kívánt iterátorpozíció.
első
utolsó
KVal
A törölni kívánt kulcsérték.
Visszaadott érték
Az első két tagfüggvény egy iterátort ad vissza, amely kijelöli az eltávolított elemeken kívül fennmaradó első elemet, vagy () végét, ha nincs ilyen elem. A harmadik tagfüggvény az eltávolított elemek számát adja vissza.
Megjegyzések
Az első tagfüggvény eltávolítja a _Whereáltal mutatott elemet. A második tagfüggvény eltávolítja a tartomány elemeit [ _Begin, _End).
A harmadik tagfüggvény eltávolítja a equal_range(KVal) által tagolt tartomány elemeit.
unsafe_max_bucket_count
A tárolóban lévő gyűjtők maximális számát adja vissza.
size_type unsafe_max_bucket_count() const;
Visszaadott érték
A tárolóban lévő gyűjtők maximális száma.
Lásd még:
egyidejű névtér
párhuzamos tárolók és objektumok