Share via


concurrent_unordered_set Class

The concurrent_unordered_set class is an concurrency-safe container that controls a varying-length sequence of elements of type _Key_type. The sequence is represented in a way that enables concurrency-safe append, element access, iterator access and iterator traversal operations.

template <
   typename _Key_type,
   typename _Hasher = std::tr1::hash<_Key_type>,
   typename _Key_equality = std::equal_to<_Key_type>,
   typename _Allocator_type = std::allocator<_Key_type>
>
, typename _Key_equality = std::equal_to<_Key_type>, typename _Allocator_type = std::allocator<_Key_type> > class concurrent_unordered_set : public details::_Concurrent_hash< details::_Concurrent_unordered_set_traits<_Key_type, details::_Hash_compare<_Key_type, _Hasher, _Key_equality>, _Allocator_type, false> >;

Parameters

  • _Key_type
    The key type.

  • _Hasher
    The hash function object type. This argument is optional and the default value is std::tr1::hash<_Key_type**>**.

  • _Key_equality
    The equality comparison function object type. This argument is optional and the default value is std::equal_to<_Key_type**>**.

  • _Allocator_type
    The type that represents the stored allocator object that encapsulates details about the allocation and deallocation of memory for the concurrent unordered set. This argument is optional and the default value is std::allocator<_Key_type**>**.

Members

Public Typedefs

Name

Description

allocator_type

The type of an allocator for managing storage.

const_iterator

The type of a constant iterator for the controlled sequence.

const_local_iterator

The type of a constant bucket iterator for the controlled sequence.

const_pointer

The type of a constant pointer to an element.

const_reference

The type of a constant reference to an element.

difference_type

The type of a signed distance between two elements.

hasher

The type of the hash function.

iterator

The type of an iterator for the controlled sequence.

key_equal

The type of the comparison function.

key_type

The type of an ordering key.

local_iterator

The type of a bucket iterator for the controlled sequence.

pointer

The type of a pointer to an element.

reference

The type of a reference to an element.

size_type

The type of an unsigned distance between two elements.

value_type

The type of an element.

Public Constructors

Name

Description

concurrent_unordered_set::concurrent_unordered_set Constructor

Overloaded. Constructs a concurrent unordered set.

Public Methods

Name

Description

concurrent_unordered_set::begin Method

Returns an iterator pointing to the first element in the concurrent container. This method is concurrency safe.

concurrent_unordered_set::cbegin Method

Returns a const iterator pointing to the first element in the concurrent container. This method is concurrency safe.

concurrent_unordered_set::cend Method

Returns a const iterator pointing to the location succeeding the last element in the concurrent container. This method is concurrency safe.

concurrent_unordered_set::clear Method

Erases all the elements in the concurrent container. This function is not concurrency safe.

concurrent_unordered_set::count Method

Counts the number of elements matching a specified key. This function is concurrency safe.

concurrent_unordered_set::empty Method

Tests whether no elements are present. This method is concurrency safe.

concurrent_unordered_set::end Method

Returns an iterator pointing to the location succeeding the last element in the concurrent container. This method is concurrency safe.

concurrent_unordered_set::equal_range Method

Finds a range that matches a specified key. This function is concurrency safe.

concurrent_unordered_set::find Method

Finds an element that matches a specified key. This function is concurrency safe.

concurrent_unordered_set::get_allocator Method

Returns the stored allocator object for this concurrent container. This method is concurrency safe.

concurrent_unordered_set::hash_function Method

Returns the stored hash function object.

concurrent_unordered_set::insert Method

Overloaded. Adds elements to the concurrent_unordered_set object.

concurrent_unordered_set::key_eq Method

Returns the stored equality comparison function object.

concurrent_unordered_set::load_factor Method

Computes and returns the current load factor of the container. The load factor is the number of elements in the container divided by the number of buckets.

concurrent_unordered_set::max_load_factor Method

Gets or sets the maximum load factor of the container. The maximum load factor is the largest number of elements than can be in any bucket before the container grows its internal table.

concurrent_unordered_set::max_size Method

Returns the maximum size of the concurrent container, determined by the allocator. This method is concurrency safe.

concurrent_unordered_set::rehash Method

Rebuilds the hash table.

concurrent_unordered_set::size Method

Returns the number of elements in this concurrent container. This method is concurrency safe.

concurrent_unordered_set::swap Method

Swaps the contents of two concurrent_unordered_set objects. This method is not concurrency-safe.

concurrent_unordered_set::unsafe_begin Method

Returns an iterator to the first element in this container for a specific bucket.

concurrent_unordered_set::unsafe_bucket Method

Returns the bucket index that a specific key maps to in this container.

concurrent_unordered_set::unsafe_bucket_count Method

Returns the current number of buckets in this container.

concurrent_unordered_set::unsafe_bucket_size Method

Returns the number of items in a specific bucket of this container.

concurrent_unordered_set::unsafe_cbegin Method

Returns an iterator to the first element in this container for a specific bucket.

concurrent_unordered_set::unsafe_cend Method

Returns an iterator to the location succeeding the last element in a specific bucket.

concurrent_unordered_set::unsafe_end Method

Returns an iterator to the last element in this container for a specific bucket.

concurrent_unordered_set::unsafe_erase Method

Overloaded. Removes elements from the concurrent_unordered_set at specified positions. This method is not concurrency-safe.

concurrent_unordered_set::unsafe_max_bucket_count Method

Returns the maximum number of buckets in this container.

Public Operators

Name

Description

concurrent_unordered_set::operator= Operator

Overloaded. Assigns the contents of another concurrent_unordered_set object to this one. This method is not concurrency-safe.

Remarks

For detailed information on the concurrent_unordered_set class, see Parallel Containers and Objects.

Inheritance Hierarchy

_Traits

_Concurrent_hash

concurrent_unordered_set

Requirements

Header: concurrent_unordered_set.h

Namespace: concurrency

See Also

Reference

concurrency Namespace

Concepts

Parallel Containers and Objects