Unique Hashed Associative Container
Unique Hashed Associative Container
Category: containers
Component type: concept
Description
A Unique Hashed Associative Container is a Hashed Associative
Container that is also a Unique Associative Container. That is,
it is a Hashed Associative Container with the property that no two
elements in the container have the same key.
Refinement of
Hashed Associative Container, Unique Associative Container
Associated types
None, except for those described in the Hashed Associative Container
and Unique Associative Container requirements.
Notation
X
A type that is a model of Hashed Associative Container
a
Object of type X
t
Object of type X::value_type
k
Object of type X::key_type
p, q
Object of type X::iterator
n
Object of type X::size_type
h
Object of type X::hasher
c
Object of type X::key_equal
Definitions
Valid expressions
In addition to the expressions defined in Hashed Associative Container
and Unique Associative Container, the following expressions must be valid.
Name
Expression
Type requirements
Return type
Range constructor
X(i, j)
X a(i, j);
i and j are Input Iterators whose value type is convertible
to T [1].
X
Range constructor with bucket count
X(i, j, n)
X a(i, j, n);
i and j are Input Iterators whose value type is convertible
to T [1].
X
Range constructor with hash function
X(i, j, n, h)
X a(i, j, n, h);
i and j are Input Iterators whose value type is convertible
to T [1].
X
Range constructor with key equal
X(i, j, n, h, k)
X a(i, j, n, h, k);
i and j are Input Iterators whose value type is convertible
to T [1].
X
Expression semantics
Name
Expression
Precondition
Semantics
Postcondition
Range constructor
X(i, j)
X a(i, j);
[i,j) is a valid range.
Creates an associative container that contains all of the elements in the range [i,j)
that have unique keys, using hasher() as the hash function
and key_equal() as the key equality function.
size() is less than or equal to the distance from i to j.
The bucket count is an unspecified default value. The hash
function is hasher(), and the key equality function is key_equal().
Range constructor with bucket count
X(i, j, n)
X a(i, j, n);
[i,j) is a valid range.
Creates an associative container that contains all of the elements
in the range [i,j) that have unique keys, using at least n
buckets, and using hasher() as the hash function and key_equal()
as the key equality function.
size() is less than or equal to the distance from i to j.
The bucket count is greater than or equal to n. The hash
function is hasher(), and the key equality function is key_equal().
Range constructor with hash function
X(i, j, n, h)
X a(i, j, n, h);
[i,j) is a valid range.
Creates an associative container that contains all of the elements
in the range [i,j) that have unique keys, using at least n
buckets, and using h as the hash function and key_equal()
as the key equality function.
size() is less than or equal to the distance from i to j.
The bucket count is greater than or equal to n. The hash
function is h, and the key equality function is key_equal().
Range constructor with key equal
X(i, j, n, h, k)
X a(i, j, n, h, k);
[i,j) is a valid range.
Creates an associative container that contains all of the elements
in the range [i,j) that have unique keys, using at least n
buckets, and using h as the hash function and k
as the key equality function.
size() is less than or equal to the distance from i to j.
The bucket count is greater than or equal to n. The hash
function is h, and the key equality function is k.
Complexity guarantees
The range constructor, range constructor with bucket count,
range constructor with hash function, and
range constructor with key equal, are all linear in j - i.
Invariants
Models
hash_set
hash_map
Notes
[1]
At present (early 1998), not all compilers support
"member templates". If your compiler supports member
templates then i and j may be of any type that
conforms to the Input Iterator
requirements. If your compiler does not yet support member
templates, however, then i and j must be of type
const T* or of type X::const_iterator.
See also
Associative Container, Hashed Associative Container,
Multiple Hashed Associative Container
Sorted Associative Container
Copyright ©
1999 Silicon Graphics, Inc. All Rights Reserved.
TrademarkInformation
Wyszukiwarka
Podobne podstrony:
Unique Alpine Tpg1mod uniqueSkyfall (2012) TS XViD UNiQUEuniqueuniqueidsunique copyTrouble with the Curve 2012 BRRip XViD AC3 UNiQUEfunction array uniqueMr Unique Święta Wojna LP 2007uniqueunique placemod unique idTHE UNIQUENESS OF LG 14THE UNIQUENESS OF LG 14uniqueassociativecontainerID UNIQUENESS POLICY IDAwesome Tie Knots How to Tie the Most Unique & Stylish Necktie Knots for Menwięcej podobnych podstron